Я хочу заменить значения FALSE на NA.Я уверен, что решение легко, но я не понимаю.Спасибо за вашу помощь!
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)
abc[match(abc, abcd)] [1] 1 2 5 6 NA
%in% активно избегает этого поведения, полный код для %in%:
%in%
`%in%` <- function (x, table) { match(x, table, nomatch = 0L) > 0L }
nomatch = 0L изменяет вывод NA на FALSE.Поведение по умолчанию match включает его.
nomatch = 0L
NA
FALSE
match
Просто сделайте -
> abc[!(abc %in% abcd)] <- NA
Выход -
> abc [1] 1 2 5 6 NA
Попробуйте базовые функции
test[isFalse(test)] <- NA