相关疑难解决方法(0)

在`data.table`中的`j`表达式中评估列名和目标值

考虑

target <- "vs"
value <- 1

library(data.table)
dt <- as.data.table(head(mtcars))
Run Code Online (Sandbox Code Playgroud)

所以我试图将列名和值作为变量传递到环境中的j表达式中data.table,这相当于

dt[, vs == 1]
# [1] FALSE FALSE  TRUE  TRUE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

如果只有值是变量,它可以很好地工作

dt[, vs == value]
# [1] FALSE FALSE  TRUE  TRUE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

当它是变量时,我们也可以在data.table范围内调用该列

dt[, target, with = FALSE]
#    vs
# 1:  0
# 2:  0
# 3:  1
# 4:  1
# 5:  0
# 6:  1
Run Code Online (Sandbox Code Playgroud)

但我无法想象如何以简单的方式将两者结合起来

注意:我很清楚我可以做到:

dt[[target]] == value
# [1] FALSE FALSE  TRUE  TRUE FALSE …
Run Code Online (Sandbox Code Playgroud)

r data.table

9
推荐指数
1
解决办法
768
查看次数

标签 统计

data.table ×1

r ×1