R语言按双变量分组计算子集SCC平均值的方法咨询
多分组计算SCC平均值操作步骤
方法1:沿用你已掌握的aggregate函数(无需额外安装包)
你之前的代码仅设置了Cow ID作为单一分组维度,只需要在分组列表中新增QTR列作为第二个分组条件即可:
# 按「患者ID+采样部位」双维度分组计算平均SCC aggregate( x = cida_ams_scc_csv$SCC, by = list( 患者ID = cida_ams_scc_csv$`Cow ID`, 采样部位 = cida_ams_scc_csv$QTR ), FUN = mean, na.rm = TRUE # 可选参数:如果有缺失值会自动忽略,不影响正常数据计算 )
输出结果共3列,依次为患者ID、采样部位、对应分组的SCC平均值,每个患者会对应4行结果(分别对应LH/LF/RH/RF四个部位)。
方法2:dplyr包实现(代码可读性更高,适合后续数据分析拓展)
如果后续还要做更多分组统计、数据清洗操作,推荐使用业内通用的dplyr包实现,操作逻辑更直观:
- 首次使用先安装包(只需运行一次,后续使用不用重复安装)
install.packages("dplyr")
- 加载包并执行计算
library(dplyr) cida_ams_scc_csv %>% group_by(`Cow ID`, QTR) %>% # 设定双分组维度 summarise(平均SCC = mean(SCC, na.rm = TRUE)) # 计算每个分组的平均值
内容的提问来源于stack exchange,提问作者PootyWheat
相关产品推荐
相关产品推荐

