[英]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.