【发布时间】:2021-10-15 13:13:36
【问题描述】:
我正在使用 R 编程语言。我有一个包含字符变量和数字变量的数据集 - 我试图用“0”替换此数据中的所有 NA 和空值。对于连续变量,NA/空值应替换为“数字 0”。对于因子变量,NA/空值应替换为“因子 0”。
过去,我使用标准命令将所有 NA 替换为 0(在下面的代码中,“df”表示包含数据的数据框):
df[df == NA] <- 0
我在我的数据上尝试了上述代码,但我仍然注意到在因子变量中,此代码无法将 <NA> 值替换为 0。<NA> 仍然存在。
我尝试了几种方法:
第一种方法:
df[is.na(df)] <- 0
但这不起作用:
Warning message:
In '[<-.factor'('*tmp*',thisvar, value = 0):
invalid factor level, NA generated
第二种方法:我尝试了因子变量之一
library(car)
df$some_factor_var <- recode(df$some_factor_var, "NA = 0")
但这将“some_factor_var”中的每个值都替换为 0
第三种方法:我再次尝试了因子变量之一
library(forcats)
fct_explicit_na(df$some_factor_var,0)
Error: Can't convert a double vector to a character vector
谁能告诉我如何解决这个问题?有没有办法一次替换所有变量的所有空/缺失/NA值?
谢谢
【问题讨论】:
标签: r data-manipulation na missing-data