这可能有点奇怪,但在我使用其参数进行过滤的函数中使用 data.table 时,我经常遇到这种情况。

假设您有一个变量,您希望将其值与 data.table 的列进行比较并进行过滤。如果变量名与列名相同怎么办?

示例和我尝试过的事情:

DT <- data.table(mtcars)
cyl <- 4
# intended: filter rows where column "cyl" equals the value of variable cyl

# this does not work
DT[cyl == (cyl)]
# this does not work either
DT[cyl == `cyl`]

最佳答案

Data.table 运行在数据表本身的环境中,因此您可能需要指定要从何处获取值

DT[cyl == get("cyl", envir = parent.frame())]

关于r - data.table - 基于名称为列的变量的子集化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40641629/

10-12 17:23