【发布时间】:2021-10-15 13:51:26
【问题描述】:
我正在使用 R。我有一个包含字符变量和数字变量的数据集 - 我正在尝试用“0”替换此数据中的所有 NA 和空值。
最近,我学会了如何将因子变量中的“NA”值替换为 0 (R: replacing <NA> within factor variables as 0):
# "df" is the dataset, "a" is the variable
#Include 0 in the levels for "a" variable
levels(df$a) <- c(levels(df$a), 0)
#Replace NA to 0
df[is.na(df)] <- 0
现在,我正在尝试学习如何将此命令应用于“df”中的每个因子变量。
我学会了如何识别所有包含“因子”变量的列:
is.fact <- sapply(df, is.factor)
从这里,有没有办法运行这个命令
levels(df$a) <- c(levels(df$a), 0)
对于数据中的每个因子变量?
目前,我正计划为所有变量手动重写此命令,例如:
levels(df$a) <- c(levels(df$a), 0)
levels(df$b) <- c(levels(df$b), 0)
levels(df$c) <- c(levels(df$c), 0)
等
然后运行以下行:
df[is.na(df)] <- 0
但我试图找到一种更快的方法来做到这一点。
有人知道怎么做吗?有人可以告诉我一个更快的方法来解决这个问题吗?
谢谢
【问题讨论】:
标签: r dataframe function data-manipulation