Konwertuj wektor na listę, każdy element w wektorze jako element na liście


92

Wektor wygląda tak:

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

Potrzebuję czegoś takiego:

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

Próbowałem tego:

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

Odpowiedzi:


126

Proste, po prostu zrób to:

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

FYI: Wydaje się, że ignoruje wartości NULL w as.list(c(0, NULL,1)).
Oleg Melnikov

1
@OlegMelnikov nie możesz przejść NULLdo wektora c(), możesz przekazać, NAjeśli tego właśnie szukasz.
Matt W.

4

Dodatek do zaakceptowanej odpowiedzi: jeśli chcesz dodać wektor do innych elementów na dłuższej liście, as.list () może nie dać tego, czego oczekujesz. Na przykład: chcesz dodać 2 elementy tekstowe i wektor składający się z pięciu elementów numerycznych (1: 5), aby utworzyć listę o długości 7 elementów.

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

Ups: zwraca listę z 3 elementami, a trzeci element ma podlistę składającą się z 5 elementów; nie to, czego chcieliśmy! Rozwiązaniem jest połączenie dwóch osobnych list:

L1<-list("a","b")
L2<-as.list(1:5)
L<-c(L1,L2) #7 elements, as expected
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.