用NA覆盖FALSE

时间:2019-04-23 19:08:55

标签: r replace na

我想用NA代替FALSE值。 我敢肯定解决方案很简单,但我不明白。 感谢您的帮助!

abc<-c(1,2,5,6,7)
abcd<-c(1,2,5,6)
test<-abc %in% abcd
table(test)["FALSE"]

解决方案应如下所示:

abc <- c(1, 2, 5, 6, NA)

3 个答案:

答案 0 :(得分:3)

abc[match(abc, abcd)]
[1]  1  2  5  6 NA

%in%积极避免这种行为,%in%的完整代码为:

`%in%` <- function (x, table) {
    match(x, table, nomatch = 0L) > 0L
}

nomatch = 0L将输出NA更改为FALSE。默认的match行为包括它。

答案 1 :(得分:2)

只需-

> abc[!(abc %in% abcd)] <- NA

输出-

> abc
[1]  1  2  5  6 NA

答案 2 :(得分:0)

尝试基本功能

   test[isFalse(test)] <- NA