我在 R 的 data.table 中有几个名为 A1、A2、A3、...A50 的列(字面意思)。不幸的是,我的表中的列不是按字母顺序排列的。
我想创建一个名为 sumA 的新列,其中包含 A1 + A2 + ... + A50。
有什么简单(而不乏味)的方法可以做到这一点?
这是一个选项Reduce
and +
library(data.table)
dt[, sumA := Reduce("+", .SD)]
如果数据集中还有其他列,即除“A1:A50”之外的列,请使用.SDcols
指定要选择的列
dt[, sumA := Reduce("+", .SD), .SDcols = paste0("A", 1:50)]
或者正如@Arun提到的,如果列是有序的,那么:
可用于选择列
dt[, sumA := Reduce("+", .SD), .SDcols = A1:A50]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)