2012-10-30 15 views
5

Sto provando a incollare stringhe da un set di dati rimodellato. Sto usando il pacchetto data.table come segue:paste, da e data.table in

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] 

Tuttavia, questo dà solo una nuova cornice del tutto identica a quella originale tranne che per il nome della variabile. Mi piacerebbe che l'output fosse costituito da due vettori concatenati in cui le variabili sono incollate insieme. Come posso fare questo?

+4

Provate 'collapse' invece di' sep'. – joran

+0

Questo ha funzionato a meraviglia --- Il mio male ... – Misha

+7

@Misha Solo per divertimento, potresti anche 'as.list' invece di' incolla'. Ciò creerà una colonna 'list' dove ogni cella stessa è un vettore. Questo a volte può essere migliore della creazione di un sacco di stringhe potenzialmente lunghe che poi potrebbero aver bisogno di essere 'strsplit' di nuovo in seguito. Proprio come un'altra opzione. –

risposta

8

Per completezza, una risposta ufficiale:

Se si utilizza paste(y,collapse=",") invece, dovrebbe funzionare.