转换NA在R中不起作用

bla*_*t00 0 r missing-data na

我有一个数据框,df和一个因子类向量,"EMAIL_STATUS".如果我做:

table(df$EMAIL_STATUS, useNA="always")
Run Code Online (Sandbox Code Playgroud)

我得到38716 <NA>,638 "YES",110 "9999".

我想将38716转换为"UNKNOWN".我尝试以下代码:

df$EMAIL_STATUS[is.na(df$EMAIL_STATUS)] <- "UNKNOWN"
Run Code Online (Sandbox Code Playgroud)

我没有得到任何错误,但它没有将NAs转换为"UNKNOWN",事实上它什么也没做.

gag*_*ews 8

这个简短的例子说明了将一个新关卡引入一个因素的可能方法之一:

x <- factor(c(NA, NA, "a", "b", NA, "b"))
x[is.na(x)] <- "c" # this won't work, no such level as "c" in levels(x)
## Warning message:
## In `[<-.factor`(`*tmp*`, is.na(x), value = "c") :
##   invalid factor level, NA generated
levels(x) <- c(levels(x), "c") #include a new category
x[is.na(x)] <- "c"
x
## [1] c c a b c b
Run Code Online (Sandbox Code Playgroud)