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

如何通过a:b形式的变量名对变量子集执行rowSum计算?

当然可以!而且这才是更稳健的做法——依赖变量名称而非位置索引,能彻底避免数据集结构更新(比如列顺序调整)带来的计算错误。

在dplyr里,你可以用pick()函数直接通过变量名范围来选择目标列,把它传给rowSums()就行,修改后的代码如下:

library(dplyr)

dd <- data.frame(a=1:10,b=2:11,c=3:12)
dd %>% mutate(Total = rowSums(pick(a:b)))

运行后得到的结果和你原来的输出完全一致:

a  b  c Total
1   1  2  3     3
2   2  3  4     5
3   3  4  5     7
4   4  5  6     9
5   5  6  7    11
6   6  7  8    13
7   7  8  9    15
8   8  9 10    17
9   9 10 11    19
10 10 11 12    21

另外还有一种等价写法,用across()函数:

dd %>% mutate(Total = rowSums(across(a:b)))

这两种方法的核心都是基于变量名选择列,哪怕之后你把数据集里的列顺序打乱(比如把c列移到a前面),只要变量名不变,代码就能正确计算出a和b的行和,完全不用依赖列的位置索引。

内容的提问来源于stack exchange,提问作者Z. Zhang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:18:13