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


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

Ответы:


127

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

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

К вашему сведению: похоже, игнорируются значения 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.