data.table列子集返回0行

时间:2018-02-02 17:00:00

标签: r data.table

BL_data[, (!(names(BL_data) %in% 'IV')), with = F]

返回:

uuid  city birth_year education_level employment_type gender marital_status number_of_children monthly_debt_expenses
1: 1uvsq4y0 Delhi       1996    no education        salaried female            yes                  2                   528
   net_monthly_income monthly_rent
1:               4247         1563

Vs的

BL_data[, !(names(BL_data) %in% 'IV'), with = F]

返回

Null data.table (0 rows and 0 cols)

即使阅读完文档后我也无法理解这种行为。有什么解释吗?

1 个答案:

答案 0 :(得分:2)

额外的括号(...)表示应该在父框架中进行评估。

在你的第二个例子中,它正在环境中评估data.table BL_data本身,这对于访问例如诸如city之类的列。