R - 用子集()`与方括号[]进行子集化的差异?

时间:2017-09-15 01:54:23

标签: subset slice

为什么我可以为这两行代码提出非常不同的答案:

    nrow(aql[(aql$`Land Use`=="RESIDENTIAL" & aql$`Location Setting`=="SUBURBAN"),])
[1] 4514

...和...

    nrow(subset(aql, (`Location Setting`=="SUBURBAN" & `Land Use`=="RESIDENTIAL")))
[1] 3527

1 个答案:

答案 0 :(得分:0)

如果没有更可重复的示例,很难说,但NALocation Setting变量可能会影响Land Use值。

subset函数明确删除了它们,而[则没有。

R在比较NATRUE / FALSE值时会做一些不直观的事情,所以要注意这样的事情:

NA & FALSE

[1] FALSE

NA & TRUE

[1] NA