2012-10-30 24 views
5

Dizeleri yeniden şekillendirilmiş bir veri kümesinden yapıştırmaya çalışıyorum. aşağıdaki gibi ben data.table paketini kullanıyorum:yapıştır, by ve data.table içinde r

m<-data.frame(x=rep(c("a","b"),20),y=factor(sample(letters,40,replace=T))) 
DT<-data.table(m) 
setkey(DT,x) 
DT[,paste(y,sep=","),by=x] 

Ancak, bu yalnızca değişken adı haricinde orijinal oldukça benzeyen yeni bir çerçeve sunar. Çıkışın, değişkenlerin birlikte yapıştırıldığı iki birleştirilmiş vektör olması istiyorum. Bunu nasıl yapabilirim?

tamlık hatırına
+4

"Sep" yerine "daraltmayı" deneyin. – joran

+0

Bu harikalar çalıştı --- Benim kötü ... – Misha

+7

@Misha Sadece eğlence için, "paste" yerine "as.list" olabilir. Bu, her hücrenin kendisinin bir vektör olduğu bir 'liste' sütunu yapar. Bu, bazen daha sonra tekrar uzun süre "strsplit" olması gerekebilecek çok sayıda uzun dizeler oluşturmaktan daha iyi olabilir. Diğer bir seçenek gibi. –

cevap

8

, resmi bir cevap: yerine paste(y,collapse=",") kullanırsanız

, çalışmalıdır.

İlgili konular