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

R语言新手求助:如何将数据框同行两列值相加生成新值?

解决R语言数据框同行列相加的问题

嗨,别担心呀!作为R语言新手遇到这种基础操作的小困惑太正常了,我来给你讲几种简单的实现方法~

首先先确认:假设你已经把这份测试时长数据读入到了名为test_data的数据框里(如果还没读入,用read.table()就能搞定,比如test_data <- read.table("你的数据文件路径", header=TRUE),header=TRUE是因为你的数据第一行是列名)。

下面是几种常用的实现方式:

方法1:基础R直接计算(最容易上手)

这是最直接的写法,比如你想把sup_b和hdt这两列的同行数值相加,生成一个叫sum_b_hdt的新列,只需要一行代码:

test_data$sum_b_hdt <- test_data$sup_b + test_data$hdt

执行完之后,你的数据框就会多出一列sum_b_hdt——对应你给的前两行数据,这列的前两个值就是175+434=609和130+592=722,刚好是每行对应两列的和。

如果要计算其他列的和,比如sup_2和lbnp,只需要把列名替换掉就行:

test_data$sum_2_lbnp <- test_data$sup_2 + test_data$lbnp

方法2:用dplyr包的mutate函数(更优雅的批量处理方式)

如果你以后经常要做数据清洗和转换,推荐学习tidyverse系列的工具包,其中dplyr的mutate()函数能让代码更简洁,还能一次性生成多个新列。

首先需要安装并加载dplyr包(第一次用才需要安装):

install.packages("dplyr")
library(dplyr)

然后用管道符%>%配合mutate()来生成新列:

test_data <- test_data %>%
  mutate(
    sum_b_hdt = sup_b + hdt,       # 生成sup_b和hdt的和列
    sum_2_lbnp = sup_2 + lbnp,     # 生成sup_2和lbnp的和列
    sum_hut_sup4 = hut + sup_4     # 还可以继续加更多列的和
  )

这种写法可读性更强,批量生成新列的时候特别方便。

小提醒

  • R语言是区分大小写的,所以列名一定要和你的数据框里的完全一致,比如Sup_b和sup_b会被当成不同的列哦;
  • 如果只想计算某一行的两列和,比如第1行的sup_b和hdt,可以写test_data$sup_b[1] + test_data$hdt[1],直接得到单行的计算结果。

内容的提问来源于stack exchange,提问作者amir.fathi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:54:38