You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言遍历Scores唯一值按ID分组计算组内方差问题求助

问题原因
  • 循环对象错误:你当前遍历的是df1$Scores列的所有行值,同一个细胞类型会触发多次重复循环,没有意义
  • 未做数据筛选:每次调用aggregate时使用的都是完整的df1数据集,没有过滤出当前循环对应的细胞类型子集,所以所有计算结果完全一致
  • 大小写不匹配:R语言大小写敏感,你的示例数据列名为Scores、Value,代码中写的小写scores、value会直接运行报错。
修正后代码
# 先提取所有唯一的细胞类型值
unique_scores <- unique(df1$Scores)

for (i in unique_scores) {
  # 筛选出当前细胞类型对应的子集
  sub_df <- df1[df1$Scores == i, ]
  # 针对子集计算每个ID的Value方差和计数
  T1 <- aggregate(Value ~ ID, sub_df, function(x) c(Var = var(x), Count = length(x)))
  # 展开嵌套的计算结果为普通列,避免写入csv格式异常
  T1 <- do.call(data.frame, T1)
  # 写入文件,关闭行号输出
  write.csv(T1, file = paste0(i, "_withinID.csv"), row.names = FALSE)
}

内容的提问来源于stack exchange,提问作者Drashti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 02:15:04