簡體   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