Ubah vektor menjadi daftar, setiap elemen dalam vektor sebagai elemen dalam daftar

93

Vektornya seperti ini:

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

Saya butuh sesuatu seperti ini:

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

Saya mencoba ini:

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

Jawaban:

127

Sederhana, lakukan saja ini:

as.list(c(1,2,3))
qed
sumber
FYI: Tampaknya mengabaikan nilai NULL di as.list(c(0, NULL,1)).
Oleg Melnikov
1
@OlegMelnikov Anda tidak bisa masuk NULLke vektor c(), Anda bisa lulus NAjika itu yang Anda cari.
Matt W.
4

Sebuah tambahan untuk jawaban yang diterima: jika Anda ingin menambahkan vektor ke elemen lain dalam daftar yang lebih panjang, as.list () mungkin tidak menghasilkan apa yang Anda harapkan. Misalnya: Anda ingin menambahkan 2 elemen teks dan vektor dari lima elemen numerik (1: 5), untuk membuat daftar yang terdiri dari 7 elemen.

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

Ups: ini mengembalikan daftar dengan 3 elemen, dan elemen ketiga memiliki sub-daftar 5 elemen; bukan yang kami inginkan! Solusinya adalah menggabungkan dua daftar terpisah:

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