2012-10-30 26 views
5

Ich versuche, Zeichenfolgen aus einem neu gestalteten Datensatz einzufügen. Ich bin mit dem data.table Paket wie folgt:Paste, durch und data.table in 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] 

jedoch das gibt nur einen neuen Rahmen ganz identisch mit dem Original, außer für den Variablennamen. Ich möchte, dass die Ausgabe zwei verkettete Vektoren ist, in denen die Variablen zusammengefügt werden. Wie kann ich das machen?

+4

Versuchen Sie 'collapse' anstelle von' sep'. – joran

+0

Das hat Wunder funktioniert --- Mein schlechtes ... – Misha

+7

@Misha Nur zum Spaß könnte man auch 'as.list' anstelle von' paste' verwenden. Dadurch wird eine Spalte "Liste" erstellt, in der jede Zelle selbst ein Vektor ist. Dies kann manchmal besser sein, als eine Menge potentiell langer Strings zu erzeugen, die dann später wieder "strsplit" sein müssen. Genauso wie eine andere Option. –

Antwort

8

Der Vollständigkeit halber, eine offizielle Antwort:

Wenn Sie paste(y,collapse=",") stattdessen verwenden, sollte es funktionieren.