在R中,如何计算由多列分组的数据子集的均值和标准误差,并将其输出到新的数据框架中



我有一个数据集(命名为'gala'),上面有" day"," tree"," trt"one_answers" logcolumn"的列。随着时间的推移收集了数据,因此每天的每种处理的每一树都是相同的树。每种治疗都重复了树的数量(例如,有一棵树" 1"用于多种治疗。

我想计算" logcolumn"列的平均值和标准误差,每棵树每天每天每天的每棵树(例如,我将在第1天,树一,治疗x等都有平均 标准误差。

我一直在尝试从其他堆栈溢出答案中制作出弗兰肯斯坦的代码,但我似乎找不到一个同时具有所有组件的代码。如果我错过了这一点,对不起,请让我知道这个答案的链接。我是编码和R的新手,并且不太了解其他代码如何直接与我想做的事情有关。

在这一点上,我有这个,但不知道它是否接近正确(我当前还会收到错误消息"类型'closure'的对象,'不可用。 TreeAverages <- data.table[, MeanLog=mean(gala$LogColumn), se=std.error(gala$LogColumn), by=c("Day","Tree","Trt")]

任何帮助将不胜感激。谢谢!

使用base r aggregate

aggregate(LogColumn ~ Day + Tree + Trt, data = gala, 
          FUN = function(x) c(mean = mean(x), se = std.error(x)))

如果您正在使用data.table,请记住将gala转换为数据。

gala = data.table(gala)
gala_output = gala[, .("MeanLog" = mean(LogColumn), 
         "std" = std.error(LogColumn)), 
     by = c("Day", "Tree", "Trt")]

您真的很接近,但是data.tabledplyr一样工作,因此它已经知道可变名称。您无需在整个过程中指定gala$LogColumn,只需按名称进行即可。

.()只是list()的速记,因此我要指定数据。Table应返回由DayTreeTrt分组的MeanLogstd列。

使用dplyr

library(dplyr)
df <- gala %>% 
  group_by(Day, Tree, Trt) %>% 
  summarise(mean = mean(LogColumn),
            std = sd(LogColumn))

最新更新