R言語における要約統計:異なる要因の異なるレベルの平均値をどのように一括計算するか
1418 ワード
リファレンス
https://stackoverflow.com/questions/12478943/how-to-group-data-table-by-multiple-columns実際の仕事の中で、私達はデータに対して平均値の計算を行う必要があって、ここで私は
1.一般的な方法aggregate
コード:
結果
2.dataを使用する.tableメソッド
コード:
結果:
要点:
data.tableは速度が速く、文法が簡単です.
https://stackoverflow.com/questions/12478943/how-to-group-data-table-by-multiple-columns実際の仕事の中で、私達はデータに対して平均値の計算を行う必要があって、ここで私は
aggregate
とdata.table
の方法を比較して、テストは主に含みます:1、データyieldに対して平均値2を計算して、Nの異なるレベルの平均値3を計算して、NとPの異なるレベルの平均値を計算します1.一般的な方法aggregate
コード:
data(npk)head(npk)aggregate(yield~N,data=npk,FUN = mean)aggregate(yield~N+P,data=npk,FUN = mean)
結果
> aggregate(yield~N,data=npk,FUN = mean) N yield1 0 52.066672 1 57.68333> aggregate(yield~N+P,data=npk,FUN = mean) N P yield1 0 0 51.716672 1 0 59.216673 0 1 52.416674 1 1 56.15000
2.dataを使用する.tableメソッド
コード:
data(npk)head(npk)library(data.table)setDT(npk)# npk[,mean(yield),by=N]# npk[,mean(yield),by=c("N","P")]# npk[,mean(yield),by=list(N,P)]npk[,mean(yield),by=.(N,P)]
結果:
> # > npk[,mean(yield),by=N] N V11: 0 52.066672: 1 57.68333> > # > npk[,mean(yield),by=c("N","P")] N P V11: 0 1 52.416672: 1 1 56.150003: 0 0 51.716674: 1 0 59.21667> > > # > npk[,mean(yield),by=list(N,P)] N P V11: 0 1 52.416672: 1 1 56.150003: 0 0 51.716674: 1 0 59.21667> npk[,mean(yield),by=.(N,P)] N P V11: 0 1 52.416672: 1 1 56.150003: 0 0 51.716674: 1 0 59.21667
要点:
data.tableは速度が速く、文法が簡単です.