在R语言中对多个数据重复样本应用相同函数实现分组求和的方法
R语言多重复样本批量分组求和实现方案
由于你所有重复样本都存储在dat1列表中,只需要先初始化对应存储结果的容器,再在循环中逐次取出每个样本执行原有计算逻辑即可,完整实现代码如下:
# 初始化存储结果的容器 Di <- vector("list", length = r) # 存储每个重复样本的完整分组聚合结果 e <- numeric(length = r) # 存储每个重复样本的Y值总求和结果 di <- vector("list", length = r) # 存储每个重复样本的分组Y求和值
for (m in 1:r) { # 取出第m个重复样本 current_df <- dat1[[m]] # 按分组i对Y执行求和 Di[[m]] <- aggregate(Y, by = list(i = current_df$i), FUN = sum) # 计算当前样本所有分组的Y值总和 e[m] <- colSums(Di[[m]][2]) # 提取当前样本的分组求和结果列 di[[m]] <- Di[[m]][2] }
结果调用方式
- 查看第k个重复样本的完整聚合结果:调用
Di[[k]] - 查看第k个重复样本的Y总求和值:调用
e[k] - 查看第k个重复样本的分组求和值:调用
di[[k]]
如果需要把所有重复的分组求和结果合并为一个数据框,可执行以下代码:
# 合并所有重复的分组求和结果,每列对应一个重复样本 di_all <- do.call(cbind, di) # 自定义列名区分不同重复 colnames(di_all) <- paste0("重复", 1:r, "_分组求和")
内容的提问来源于stack exchange,提问作者John Majimboni
相关产品推荐
相关产品推荐

