Konvertieren Sie einen Vektor in eine Liste, wobei jedes Element im Vektor ein Element in der Liste ist

91

Der Vektor ist wie folgt:

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

Ich brauche so etwas:

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

Ich habe es versucht:

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

Antworten:

125

Einfach, mach einfach das:

as.list(c(1,2,3))
qed
quelle
Zu Ihrer Information: Es scheint NULL-Werte in zu ignorieren as.list(c(0, NULL,1)).
Oleg Melnikov
1
@OlegMelnikov Sie können nicht NULLin einen Vektor übergeben c(), Sie können übergeben, NAwenn Sie danach suchen.
Matt W.
4

Eine Ergänzung zur akzeptierten Antwort: Wenn Sie anderen Elementen in einer längeren Liste einen Vektor hinzufügen möchten, erzeugt as.list () möglicherweise nicht das, was Sie erwarten. Beispiel: Sie möchten 2 Textelemente und einen Vektor mit fünf numerischen Elementen (1: 5) hinzufügen, um eine Liste mit 7 Elementen zu erstellen.

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

Hoppla: Es wird eine Liste mit 3 Elementen zurückgegeben, und das dritte Element enthält eine Unterliste mit 5 Elementen. nicht was wir wollten! Die Lösung besteht darin, zwei separate Listen zu verbinden:

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