r - 如何计算所有重复中每种处理的平均值
问题描述
我正在寻找一种方法来计算两次重复中每种处理的权重的平均值、标准差和 se 值。
Treatment Rep Weight
Line 1 1 NA
Line 1 1 NA
Line 1 1 NA
Line 1 1 NA
Line 2 1 26
Line 2 1 26
Line 2 1 26
Line 2 1 27
Line 1 2 26
Line 1 2 28
Line 1 2 26
Line 1 2 25
Line 2 2 24
Line 2 2 26
Line 2 2 25
Line 2 2 NA
我尝试了 dplyr 包,但它给出了每个复制的处理平均值,而不是两个复制的组合。
Data1 %>% group_by(Treatment, Rep) %>% summarise_at(vars(-group_cols()), list(mean = ~mean(Weight, na.rm = TRUE),
sd = ~sd(Weight, na.rm = TRUE), se= ~sd(Weight, na.rm = TRUE)/sqrt(n())))
感谢您的帮助!
解决方案
基于OP的代码
df1 %>%
group_by(Treatment, Rep) %>%
summarise_at(vars(-group_cols()), list(mean = ~mean(Weight, na.rm = TRUE),
sd = ~sd(Weight, na.rm = TRUE),
se= ~sd(Weight, na.rm = TRUE)/sqrt(n()))) %>%
summarise_at(vars(mean:se), mean, na.rm = TRUE)
数据
df1 <- structure(list(Treatment = c("Line 1", "Line 1", "Line 1", "Line 1",
"Line 2", "Line 2", "Line 2", "Line 2", "Line 1", "Line 1", "Line 1",
"Line 1", "Line 2", "Line 2", "Line 2", "Line 2"), Rep = c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L),
Weight = c(NA, NA, NA, NA, 26L, 26L, 26L, 27L, 26L, 28L,
26L, 25L, 24L, 26L, 25L, NA)), class = "data.frame", row.names = c(NA,
-16L))
推荐阅读
- python - 添加到单独的数据库 Flask-SQLAlchemy
- python - uWSGI + Flask 请求数据性能问题
- html - 智能 y 坐标使具有打字效果的文本垂直对齐
- c++ - 什么是模板
意思是? - javascript - 未捕获的错误:目标容器不是 DOM 元素。VSCode 实时服务器
- java - 多模块项目中的 Java JaCoCo 集成报告
- laravel - 数据库中的值数组,每小时(制作图表)
- swift - 为什么 CIContext.init() 不应该返回 nil?
- python - python中的康普顿散射
- docker - 如何在高山基础 docker 映像中设置时区?