R 語言中的匯總統(tǒng)計:如何批量計算不同因素不同水平的平均值

參考

https://stackoverflow.com/questions/12478943/how-to-group-data-table-by-multiple-columns
實際工作中,我們需要對數(shù)據(jù)進行平均值計算,這里我比較了aggregatedata.table的方法,測試主要包括:
1,對數(shù)據(jù)yield計算平均值
2,計算N不同水平的平均值
3, 計算N和P不同水平的平均值

1. 常規(guī)方法aggregate

代碼:

data(npk)head(npk)aggregate(yield~N,data=npk,FUN = mean)aggregate(yield~N+P,data=npk,FUN = mean)

結(jié)果

> 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)]

結(jié)果:

> # 單個變量> 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速度更快,語法更簡單。


?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容