I sh для создания функции, которая принимает три аргумента: таблицу данных, целевой столбец и вектор столбцов для вычитания из целевого столбца:
test = data.table(
total = c(10,6,4,4,5,6),
b = c(9,5,3,3,4,5),
c = rep(1, 6),
d = rep(2, 6)
)
функция (data, target = "total", cols = c ("b", "c")) должна выдавать желаемый результат:
test = data.table(
total = c(10,6,4,4,5,6),
b = c(9,5,3,3,4,5),
c = rep(1, 6),
d = rep(2, 6),
new_total = rep(0, 6)
)
Пока попыток:
1)
testfunction <- function(dt, target, cols){
dt[, new_total := target - .SD , .SDcols = cols]
}
2)
testfunction <- function(dt, target, cols){
temp = copy(dt[, .SD, .SDcols = cols])
dt[, new_total := target - temp]
}
Ни одна из этих работ, и я думаю, что моя попытка показывает отсутствие понимания data.table, к сожалению.