[英]How to recode only some values in R to NA using dplyr::if_else?
我想用 dpylr::if_else 将低于 0 的值重新编码为 NA,保持所有其他值不变。 我知道还有其他方法可以做到这一点,但我不知道为什么这不起作用: data %>% mutate(x = if_else(x < 0, NA, x))
R 返回:
“
false
必须是逻辑向量,而不是双向量。”
我希望false
保持原始值。
问题是NA
与FALSE
条件中的x
类型不同。 您可以改用NA_real_
来解决此问题。
library(dplyr)
dat <- data.frame(x = c(-1,0,1))
# Use NA_real_
dat %>% mutate(z = if_else(x < 0, NA_real_, x))
#> x z
#> 1 -1 NA
#> 2 0 0
#> 3 1 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.