【发布时间】:2020-03-31 18:41:28
【问题描述】:
我想了解.SDcols 和.SD 的工作原理。我得到了以下函数,可以直接在数据表中应用,但不能通过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")]
【问题讨论】:
-
@akrun 我正在为面板中的每个 ID 应用该函数,因此需要循环