Преобразуйте вектор в список, каждый элемент в векторе как элемент в списке

93

Вектор такой:

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
qed
источник

Ответы:

127

Просто сделайте это:

as.list(c(1,2,3))
qed
источник
К вашему сведению: похоже, игнорируются значения NULL в файлах as.list(c(0, NULL,1)).
Олег Мельников
1
@OlegMelnikov вы не можете перейти NULLв вектор c(), вы можете пройти, NAесли это то, что вы ищете.
Мэтт В.
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
Джон
источник