子集函数缺少一些值?

时间:2014-06-05 17:55:11

标签: r dataframe subset

我有一个数据框,我想确认每个条目的两列匹配。所以我试过了:

> nrow(subset(df, col.a!=col.b))
[1] 0

这对我来说似乎很好,但后来我尝试比较数据帧中的条目总数。似乎这些数字应该相等,但它们不是:

nrow(subset(df, col.a==col.b))
[1] 3443
nrow(df)
[1] 3453

知道这里发生了什么吗?为什么看起来这个子集掉了10个条目?非常感谢你的帮助。

另外,我对此很新,所以如果有更好的方法来检查这两列是否匹配,请告诉我。

1 个答案:

答案 0 :(得分:0)

subset会自动删除标准为NA的行。它应该总是(?)是

的情况
nrow(d)

nrow(subset(d, col.a!=col.b))+
nrow(subset(d, col.a==col.b))+
nrow(subset(d, is.na(col.a) | is.na(col.b)))

应该是平等的。