recode_factor无法替换缺少的值

问题描述 投票:1回答:1

我在recode_factor函数中遇到问题。由于某些原因,我无法将NA替换为'missing'。

这是我的尝试

recode_factor(Data$i_ypsocweb, `1` = "yes", `2` = "no", missing = "missing")

这些值未替换,我看到一个错误

NA由强制强制引入。未替换的值被视为NA的.x不是兼容。请详尽指定替换品或供应.default

screenshot

更糟糕的是,当我轴向打开数据集并找到值时,它没有被更改。我仍然得到数值

r forcats
1个回答
0
投票

没有示例数据,但是其中之一应该可以满足您的需求。下面的样本数据,其中x是数字数组,y是一个因子。

library(dplyr)

set.seed(1)
x <- sample(c(1, 2, NA), size = 15, replace = TRUE)
y <- as.factor(x)

x %>% recode(`1` = "yes", `2` = "no", .missing = "missing")
[1] "yes"     "missing" "yes"     "no"      "yes"     "missing" "missing" "no"      "no"      "missing" "missing"
[12] "yes"     "yes"     "yes"     "no"

case_when(y == 1 ~ "yes", y == 2 ~ "no", is.na(y) ~ "missing")
[1] "yes"     "missing" "yes"     "no"      "yes"     "missing" "missing" "no"      "no"      "missing" "missing"
[12] "yes"     "yes"     "yes"     "no" 
© www.soinside.com 2019 - 2024. All rights reserved.