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

R语言实现DataFrame多列按行依次相减生成新列的方法

R语言实现多列依次相减生成新列

基础R实现

直接使用apply()逐行处理指定列,按需求计算:

# 构造示例数据
df <- data.frame(
  Column_A = c("ex1", "ex2"),
  a = c(10, 15),
  b = c(5, 3),
  c = c(6, 4),
  d = c(7, 2)
)

# 新增列e,计算逻辑为 a - b - c - d
df$e <- apply(df[, c("a", "b", "c", "d")], 1, function(x) x[1] - sum(x[-1]))

tidyverse(dplyr)实现

用更直观的逐行计算语法:

library(dplyr)

# 基于示例数据生成新列
df <- df %>%
  rowwise() %>%
  mutate(e = a - b - c - d) %>%
  ungroup()

另外补充:其实你尝试的rowSums()可以调整用法达成需求,数学上a - b - c - d等价于a - (b + c + d),所以也可以这样写:

df$e <- df$a - rowSums(df[, c("b", "c", "d")])

三种方法结果一致,可根据自己的代码习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:38:20