使用.SDcols对r中的data.table中的列值求和

evg*_*nko 2 r data.table

DT <- data.table(A = 1:5, B = 2:6, C = 3:7)
Run Code Online (Sandbox Code Playgroud)

我想使用列索引对3列进行求和:

DT[, D := do.call(sum, .SD), .SDcols = 1:3]
Run Code Online (Sandbox Code Playgroud)

但是上面的代码不起作用,

我也不想用 DT[, D := (A+B+C)]

Psi*_*dom 5

您可以rowSums在上使用.SD

DT[, D := rowSums(.SD), .SDcols = 1:3][]

#   A B C  D
#1: 1 2 3  6
#2: 2 3 4  9
#3: 3 4 5 12
#4: 4 5 6 15
#5: 5 6 7 18
Run Code Online (Sandbox Code Playgroud)