我在R中的data.table中有几列(字面意思)名为A1,A2,A3,... A50。不幸的是,我的表中的列不按字母顺序排列。
我想创建一个名为sumA的新列,它将包含A1 + A2 + ... + A50。
这是一种简单(而非繁琐)的方法吗?
答案 0 :(得分:5)
以下是Reduce
和+
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]