美文网首页R语言和Julia以及Python数据分析生物信息-生物统计
R 语言中的汇总统计:如何批量计算不同因素不同水平的平均值

R 语言中的汇总统计:如何批量计算不同因素不同水平的平均值

作者: 育种数据分析之放飞自我 | 来源:发表于2019-07-16 07:43 被阅读0次

    参考

    https://stackoverflow.com/questions/12478943/how-to-group-data-table-by-multiple-columns
    实际工作中,我们需要对数据进行平均值计算,这里我比较了aggregatedata.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速度更快,语法更简单。

    相关文章

      网友评论

        本文标题:R 语言中的汇总统计:如何批量计算不同因素不同水平的平均值

        本文链接:https://www.haomeiwen.com/subject/gmwakctx.html