用NA覆盖FALSE

问题描述 投票:2回答:3

我想用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)
r replace na
3个回答
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行为包括它。


2
投票

只需 -

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

输出 -

> abc
[1]  1  2  5  6 NA

0
投票

尝试基本功能

   test[isFalse(test)] <- NA
© www.soinside.com 2019 - 2024. All rights reserved.