R 如何根据列名称存储在变量中的列的值筛选data.table

R 如何根据列名称存储在变量中的列的值筛选data.table,r,data.table,R,Data.table,假设我有一个数据。表如下- DT = data.table('Col1' = c(NA, 100), 'Col2' = letters[1:2]) 现在我想过滤这个DT,其中Col1是NA。但是Col1存储在变量中- Col_Name = 'Col1' DT[is.na(Col_Name)] ### Empty data.table (0 rows and 2 cols): Col1,Col2 你知道我为什么会得到0排吗 然而,如果我这样做 DT[is.na(Col1)] 我得到了正确的结

假设我有一个
数据。表如下-

DT = data.table('Col1' = c(NA, 100), 'Col2' = letters[1:2])
现在我想过滤这个
DT
,其中
Col1
NA
。但是
Col1
存储在变量中-

Col_Name = 'Col1'
DT[is.na(Col_Name)]
### Empty data.table (0 rows and 2 cols): Col1,Col2
你知道我为什么会得到0排吗

然而,如果我这样做

DT[is.na(Col1)]
我得到了正确的结果

第一种方法有什么问题

任何指针都将受到高度赞赏


谢谢,

您正处于标准评估问题的典型示例中。使用
data.table
处理变量名非常容易。在您的情况下,
get
可以完美地完成这项工作

DT[is.na(get(Col_Name))]

参见我在
数据中写的关于SE与NSE的主题。表

您处于标准评估问题的典型示例中。使用
data.table
处理变量名非常容易。在您的情况下,
get
可以完美地完成这项工作

DT[is.na(get(Col_Name))]
参见我在
数据表

DT[is.na(get(Col\u Name))]
DT[is.na(get(Col\u Name))]中写的关于SE与NSE的主题