Перетворити вектор у список, кожен елемент у векторі як елемент у списку


92

Вектор виглядає так:

c(1,2,3)
#[1] 1 2 3

Мені потрібно щось подібне:

list(1,2,3)
#[[1]]
#[1] 1
#
#[[2]]
#[1] 2
#
#[[3]]
#[1] 3

Я спробував це:

list(c(1,2,3))
#[[1]]
#[1] 1 2 3

Відповіді:


126

Просто, просто зробіть так:

as.list(c(1,2,3))

FYI: Здається, ігнорує значення NULL у as.list(c(0, NULL,1)).
Олег Мельников

1
@OlegMelnikov ви не можете перейти NULLу вектор c(), ви можете перейти, NAякщо це те, що ви шукаєте.
Matt W.

4

Додаток до прийнятої відповіді: якщо ви хочете додати вектор до інших елементів у довшому списку, as.list () може не дати того, що ви очікуєте. Наприклад: ви хочете додати 2 текстові елементи та вектор із п’яти числових елементів (1: 5), щоб скласти список довжиною в 7 елементів.

L<-list("a","b",as.list(1:5)) 

На жаль, він повертає список із 3 елементами, а третій елемент має підспис із 5 елементів; не те, що ми хотіли! Рішення полягає в об’єднанні двох окремих списків:

L1<-list("a","b")
L2<-as.list(1:5)
L<-c(L1,L2) #7 elements, as expected
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.