检查数据帧的行是否等于忽略NA值的另一行

时间:2014-07-27 08:47:44

标签: r dataframe

我有两个data.frames。

df1可能有几行从不包含NA,它看起来像:

col1 col2 col3 col4
1    1    2    1
2    1    2    3
3    1    2    1
1    2    2    2

虽然df2总是有一行可能包含NA,但它看起来像这样:

col1 col2 col3 col4
1    NA   2    NA

我正在寻找一种方法来测试df1的每一行,如果df2等于指向所有NA值的那一行。在检查上面的例子后,我希望得到:

TRUE FALSE FALSE TRUE

到目前为止,我已尝试过all()和()的几种组合,但我还没有找到有效的解决方案。

感谢。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

m1 <- t(df1)
v1 <- unlist(df2)
m1[is.na(v1)] <- NA
colSums(m1==v1|is.na(m1))==ncol(m1)
#[1]  TRUE FALSE FALSE  TRUE