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

在R中,如何计算由多列分组的数据子集的平均值和标准误差,并将其输出到新的数据帧中?,r,dataframe,grouping,mean,standard-error,R,Dataframe,Grouping,Mean,Standard Error,我有一个数据集(名为“gala”),其中有“Day”、“Tree”、“Trt”和“LogColumn”列。数据是随着时间的推移收集的,因此每个编号的树都是相同的树,因为每个处理在所有的日子里都是相同的。每个处理重复树编号(例如,多个处理有一棵树“1”) 我想计算“LogColumn”列的平均值和标准误差,对于每天每次治疗的每棵树(例如,我将有第1天、第1棵树、治疗x等的平均值+标准误差),并将平均值和标准误差结果输出到一个新的数据框中,该数据框还包括原始的天、树、Trt值 我一直在尝试从其他堆栈

我有一个数据集(名为“gala”),其中有“Day”、“Tree”、“Trt”和“LogColumn”列。数据是随着时间的推移收集的,因此每个编号的树都是相同的树,因为每个处理在所有的日子里都是相同的。每个处理重复树编号(例如,多个处理有一棵树“1”)

我想计算“LogColumn”列的平均值和标准误差,对于每天每次治疗的每棵树(例如,我将有第1天、第1棵树、治疗x等的平均值+标准误差),并将平均值和标准误差结果输出到一个新的数据框中,该数据框还包括原始的天、树、Trt值

我一直在尝试从其他堆栈溢出答案中生成一个弗兰肯斯坦代码,但没有成功,但我似乎无法找到一个同时包含所有组件的代码。如果我错过了这个,我很抱歉,请让我知道这个答案的链接。我不熟悉编码和R,不太了解如何应用与我想做的事情不直接相关的其他代码

在这一点上,我有这个,但不知道它是否接近正确(我目前还收到错误消息“类型为“closure”的对象不可再附加”):
TreeAverages如果您使用的是data.table,请记住首先将gala转换为data.table对象

gala = data.table(gala)

gala_output = gala[, .("MeanLog" = mean(LogColumn), 
         "std" = std.error(LogColumn)), 
     by = c("Day", "Tree", "Trt")]
您非常接近,但
data.table
的工作原理与
dplyr
类似,因此它已经知道变量名。您不需要自始至终指定
gala$LogColumn
,只需按名称指定即可


只是
list()
的简写,所以我指定data.table应该返回列
MeanLog
std
,按
Day
Tree
Trt
分组

如果您使用的是data.table,请记住首先将gala转换为data.table对象

gala = data.table(gala)

gala_output = gala[, .("MeanLog" = mean(LogColumn), 
         "std" = std.error(LogColumn)), 
     by = c("Day", "Tree", "Trt")]
您非常接近,但
data.table
的工作原理与
dplyr
类似,因此它已经知道变量名。您不需要自始至终指定
gala$LogColumn
,只需按名称指定即可

只是
list()
的简写,所以我指定data.table应该返回列
MeanLog
std
,按
Day
Tree
Trt
分组

使用dplyr

library(dplyr)
df <- gala %>% 
  group_by(Day, Tree, Trt) %>% 
  summarise(mean = mean(LogColumn),
            std = sd(LogColumn))
库(dplyr)
df%
分组依据(日、树、Trt)%>%
总结(平均值=平均值(对数列),
标准=标准偏差(对数列))
使用dplyr

library(dplyr)
df <- gala %>% 
  group_by(Day, Tree, Trt) %>% 
  summarise(mean = mean(LogColumn),
            std = sd(LogColumn))
库(dplyr)
df%
分组依据(日、树、Trt)%>%
总结(平均值=平均值(对数列),
标准=标准偏差(对数列))

使用基本R
聚合

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

使用基本R
聚合

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

您应该提供一个可复制的示例您应该提供一个可复制的示例我得到错误
找不到函数“std.error”
计算出来-它需要
库(plotrix)
我得到错误
找不到函数“std.error”
计算出来-它需要
库(plotrix)