R 用NA覆盖FALSE

R 用NA覆盖FALSE,r,replace,na,R,Replace,Na,我想用NA替换假值。 我确信解决办法很简单,但我不明白。 谢谢你的帮助 abc<-c(1,2,5,6,7) abcd<-c(1,2,5,6) test<-abc %in% abcd table(test)["FALSE"] abc简单地做- > abc[!(abc %in% abcd)] <- NA 尝试基函数 test[isFalse(test)] <- NA test[isFalse(test)] %中的%主动避免此行为,%中的%的完整代码为:

我想用NA替换假值。 我确信解决办法很简单,但我不明白。 谢谢你的帮助

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

> abc[!(abc %in% abcd)] <- NA
尝试基函数

   test[isFalse(test)] <- NA
test[isFalse(test)]
%
中的
%主动避免此行为,%
中的
%的完整代码为:

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

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

感谢您快速而详细的回答!美好的非常感谢。
   test[isFalse(test)] <- NA
abc[match(abc, abcd)]
[1]  1  2  5  6 NA
`%in%` <- function (x, table) {
    match(x, table, nomatch = 0L) > 0L
}