2
我试图通过data.table
来与另一列的一组列差异。这里有一个简单的例子:data.table另一列的列差异集
library(data.table)
dt <- data.table(a=1:10,b=11:20,d=21:30)
mycols <- c("b","d")
dt[,c(paste0("diff",mycols)):=lapply(mycols, function(x, env) get(x,env) - get("a",env), env=dt)]
dt
a b d diffb diffd
1: 1 11 21 10 20
2: 2 12 22 10 20
3: 3 13 23 10 20
4: 4 14 24 10 20
5: 5 15 25 10 20
6: 6 16 26 10 20
7: 7 17 27 10 20
8: 8 18 28 10 20
9: 9 19 29 10 20
10: 10 20 30 10 20
我的问题是是否有这更好的语法与data.table
?问题是列“a”没有在函数范围内定义,所以我必须使用get来使其工作。
你的问题解释了如何在data.table中使用环境的概念。这进一步帮助我理解data.table。谢谢。 –