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

Antworten:


125

Einfach, mach einfach das:

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.