我正在创建一个可以查询一列或多列的函数,并且想知道是否有办法使用变量名来查询数据表。我可以将get(var)用于一列,但不能用于多列。
test <- data.table(a = 1:3, b = seq(2,6,2), c = seq(3,9,3))
> test
a b c
1: 1 2 3
2: 2 4 6
3: 3 6 9
> t1 <- 'b'
> test[, get(t1)]
[1] 2 4 6
> t2 <- c('b', 'c')
> test[, list(get(t2))]
V1
1: 2
2: 4
3: 6
我试过mget,但那也不起作用:
> test[, list(mget(t2))]
Error: value for ‘b’ not found
或lapply,这基本上是mget所做的:
> test[, list(lapply(t2, get))]
Error in FUN(c("b", "c")[[1L]], ...) : object 'b' not found
如果您只是尝试变量:
> test[, list(t2)]
t2
1: b
2: c
有什么想法吗?
肖恩