繁体   English   中英

如何使用 dplyr::if_else 仅将 R 中的某些值重新编码为 NA?

[英]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保持原始值。

问题是NAFALSE条件中的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM