1
第一關的多列,讓我們假一些數據如何申請彙總函數到數據表
>library(data.table)
>DT = data.table(x=c('A','A','B','B'),y=c('X','Y','X','Y'),z=c(1,2,3,4))
>DT
x y z
1: A X 1
2: A Y 2
3: B X 3
4: B Y 4
>DF<-data.frame(DT)
>DF
x y z
1 A X 1
2 A Y 2
3 B X 3
4 B Y 4
cols<-cbind('x','y')
> DF[,cols]
x y
1 A X
2 A Y
3 B X
4 B Y
> lapply(X=DF[,cols],FUN=paste,sep=', ',collapse=', ')
$x
[1] "A, A, B, B"
$y
[1] "X, Y, X, Y"
這感覺就像它應該是很簡單的。我如何應用DT?我試圖堅持data.frame,以便我可以在非常大的數據集上運行(n> 1 mil)。我能來的最近的是:
> DT[,lapply(X=list(get(cols)),FUN=paste,sep=', ',collapse=', ')]
V1
1: A, A, B, B
它只是將函數應用到我指定的兩列中的第一列。
可能重複(http://stackoverflow.com/questions/16659887/efficiently-run -a-function-on-many-columns-in-a-data-table-in-r) – hrbrmstr 2014-10-16 21:03:41
只需稍作說明,你可以使用setDT(轉換爲DT)和setDF(轉換爲DF)在data.table包中。 – KFB 2014-10-16 21:27:18