Я пытаюсь понять, как работают .SDcols
и .SD
. Я получил следующую функцию, которую я могу применить непосредственно в datatable, но не через lapply
. Мне интересно, есть ли эквивалент с .SD
, который позволяет передавать несколько параметров в тело функции. Приведенный ниже код всегда дает «Неиспользованный аргумент ...»
DT <- data.table(a=1:10,b=2:11,c=3:12,ID=c(rep("A",5),rep("B",5)))
doSomething <- function(a,b,c){
tmp <- a/b
tmp2 <- sqrt(tmp)^2000000
tmp3 <- tmp2 + tmp
return(rep(tmp3,length(a)))
}
DT[,doSomething(a,b,c)] # works
DT[,lapply(.SD,doSomething,a,b,c),.SDcol=c("a","b","c")]
DT[,lapply(.SD,doSomething,a=a,b=b,c=c),.SDcol=c("a","b","c")]