在data.table中创建新列

时间:2016-08-30 16:12:10

标签: r data.table

我在R中的data.table中有几列(字面意思)名为A1,A2,A3,... A50。不幸的是,我的表中的列不按字母顺序排列。

我想创建一个名为sumA的新列,它将包含A1 + A2 + ... + A50。

这是一种简单(而非繁琐)的方法吗?

1 个答案:

答案 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]