Convierta un vector en una lista, cada elemento en el vector como un elemento en la lista

93

El vector es así:

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

Necesito algo como esto:

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

Probé esto:

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

Respuestas:

127

Simple, solo haz esto:

as.list(c(1,2,3))
qed
fuente
FYI: Parece ignorar los valores NULL en as.list(c(0, NULL,1)).
Oleg Melnikov
1
@OlegMelnikov no puede pasar NULLa un vector c(), puede pasar NAsi eso es lo que está buscando.
Matt W.
4

Una adición a la respuesta aceptada: si desea agregar un vector a otros elementos en una lista más larga, es posible que as.list () no produzca lo que espera. Por ejemplo: desea agregar 2 elementos de texto y un vector de cinco elementos numéricos (1: 5), para hacer una lista de 7 elementos.

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

Vaya: devuelve una lista con 3 elementos y el tercer elemento tiene una sublista de 5 elementos; no es lo que queríamos! La solución es unir dos listas separadas:

L1<-list("a","b")
L2<-as.list(1:5)
L<-c(L1,L2) #7 elements, as expected
Juan
fuente