使用dplyr计算分组列的均值、标准差及标准误报错求助
问题原因及解决方法
报错原因
你遇到的问题核心是dplyr版本迭代导致的语法不兼容:
summarise_each是dplyr旧版本的函数,目前已被官方弃用,新版dplyr推荐直接在summarise()/mutate()这类核心动词中使用across()来实现批量列处理。- 你尝试在已被弃用的
summarise_each()里嵌套across(),但across()的设计逻辑就是要直接放在summarise/mutate这类"dplyr verbs"内部,这种嵌套调用违背了它的使用规则,所以触发报错。
正确写法示例
直接在summarise()中结合across(),批量处理所有分析类数值列,同时计算均值、标准差、标准误:
library(dplyr) # 假设数据集名为df,按Size和Fraktion分组后计算统计量 df_summary <- df %>% group_by(Size, Fraktion) %>% summarise( # 对除分组列外的所有数值列计算均值、标准差、标准误 across(-all_of(c("Size", "Fraktion")), list( mean = ~mean(., na.rm = TRUE), sd = ~sd(., na.rm = TRUE), se = ~sd(., na.rm = TRUE)/sqrt(n()) )), .groups = "drop" # 可选,用于取消分组状态 )
内容的提问来源于stack exchange,提问作者ni80R
相关产品推荐
相关产品推荐

