我想用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)
答案 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