Я хотел бы применить одну функцию к нескольким столбцам, используя вектор различных значений для одного параметра.
У меня есть некоторые данные:
library(data.table)
df1 <- as.data.table(data.frame(a = c(1,2,3),
b = c(4,5,6)))
cols <- c('a', 'b')
n <- 1:2
И я хочу создать столбцы что добавить к а и б. Вывод будет выглядеть следующим образом:
a b a+1 b+1 a+2 b+2
1: 1 4 2 5 3 6
2: 2 5 3 6 4 7
3: 3 6 4 7 5 8
В этом посте подробно описано, как применить одну функцию к нескольким столбцам, что я понимаю, как это сделать.
df1[,paste0(cols,'+1'):= lapply(.SD, function(x) x + 1), .SDcols = cols]
Что я не знаю, как применить одну и ту же функцию к нескольким столбцам, заменив n на 1.