Bir vektörü bir listeye, vektördeki her bir öğeyi listedeki bir öğe olarak dönüştürme


93

Vektör şuna benzer:

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

Bunun gibi bir şeye ihtiyacım var:

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

Bunu denedim:

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

Yanıtlar:


127

Basit, sadece şunu yapın:

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

Bilginize: NULL değerleri göz ardı ediyor gibi görünüyor as.list(c(0, NULL,1)).
Oleg Melnikov

1
@OlegMelnikov NULLbir vektöre c()geçemezsin, NAeğer aradığın buysa geçebilirsin .
Matt W.

4

Kabul edilen yanıta ek: Daha uzun bir listedeki diğer öğelere bir vektör eklemek isterseniz, as.list () beklediğinizi üretmeyebilir. Örneğin: 7 öğe uzunluğunda bir liste oluşturmak için 2 metin öğesi ve beş sayısal öğeden oluşan bir vektör (1: 5) eklemek istiyorsunuz.

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

Hata: 3 öğeli bir liste döndürür ve üçüncü öğe 5 öğeden oluşan bir alt listeye sahiptir; istediğimiz değil! Çözüm, iki ayrı listeyi birleştirmektir:

L1<-list("a","b")
L2<-as.list(1:5)
L<-c(L1,L2) #7 elements, as expected
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.