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

如何在R语言data.frame表格的最后一列新增按行求和的SUM列

实现方法

你可以通过以下两种常用方案实现按行求和并新增SUM列,两种方案都会自动忽略NA值,符合你需要的计算逻辑:

方案1:基础R写法

直接使用rowSums()函数指定要计算的数值列即可,这里排除第一列的日期列:

# 先把示例数据赋值给output
output <- structure(list(date = structure(c(18808, 18810), class = "Date"), 
    ABC = c(4, 1), CDE = c(1, NA), FGH = c(6, NA)), row.names = c(NA, 
-2L), class = "data.frame")

# 新增求和列
output$SUM <- rowSums(output[, -1], na.rm = TRUE)

如果你的日期列不在第一列,也可以通过列名指定计算范围,适配性更强:

output$SUM <- rowSums(output[, c("ABC","CDE","FGH")], na.rm = TRUE)

方案2:dplyr(tidyverse生态)写法

如果日常使用tidyverse体系,可以用mutate结合rowSums实现,自动识别所有数值列计算,不用手动列全字段名:

library(dplyr)

output <- output %>%
  mutate(SUM = rowSums(across(where(is.numeric)), na.rm = TRUE))

如果你需要明确指定求和的列范围,也可以写为:

output <- output %>%
  rowwise() %>%
  mutate(SUM = sum(c_across(ABC:FGH), na.rm = TRUE)) %>%
  ungroup()

两种方法运行后得到的结果都和你要求的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:48:03