如何基于Category列条件计算Day1-Day4列的列总和
问题解决方法
首先你筛选子集的代码存在语法错误,正确的子集筛选需要加上逗号,否则返回的数据结构不符合后续计算要求:
subset_data <- df[(df$Category == 'Fixed' | df$Category == 'New'), ]
由于数据中存在NA值,计算总和时需要指定na.rm = TRUE忽略缺失值,下面提供两种实现方式:
方法1:直接用colSums(最简洁)
# 选取Day1到Day4列计算总和 specific_sums <- colSums(subset_data[, c("Day1", "Day2", "Day3", "Day4")], na.rm = TRUE)
方法2:使用for循环实现
# 初始化存储结果的向量 day_sums <- numeric(4) names(day_sums) <- c("Day1", "Day2", "Day3", "Day4") # 遍历每个Day列计算总和 for (day_col in c("Day1", "Day2", "Day3", "Day4")) { day_sums[day_col] <- sum(subset_data[[day_col]], na.rm = TRUE) }
最终结果
两种方法都会得到相同的计算结果:
Day1 Day2 Day3 Day4 1098 2845 615 666
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

