【发布时间】:2019-01-01 11:38:18
【问题描述】:
我的数据框如下所示:
df <- tibble(x = c(1, 2, NA),
y = c(1, NA, 3),
z = c(NA, 2, 3))
我想使用 tidyr::replace_na() 将 NA 替换为 0。正如此函数的文档所明确指出的,一旦您知道要对哪些列执行操作,就可以直接执行此操作。
df <- df %>% replace_na(list(x = 0, y = 0, z = 0))
但是,如果您的列数不确定怎么办? (我说“不确定”是因为我正在尝试创建一个使用 dplyr 工具即时执行此操作的函数。)如果我没记错的话,与我尝试使用上述工具实现的基本 R 等效的是:
df[, 1:ncol(df)][is.na(df[, 1:ncol(df)])] <- 0
但我总是难以理解这段代码。提前感谢您的帮助。
【问题讨论】: