假设我有一个包含多个列的数据框,我想要对它们进行相同的
例如,在上面的数据框中,我想要做类似于
我可以这样做:
NA
替换:dd <- data.frame(x = c(NA, LETTERS[1:4]), a = rep(NA_real_, 5), b = c(1:4, NA))
例如,在上面的数据框中,我想要做类似于
replace_na(dd, where(is.numeric), 0)
的事情,以替换列 a
和 b
中的 NA
值。我可以这样做:
num_cols <- purrr::map_lgl(dd, is.numeric)
r <- as.list(setNames(rep(0, sum(num_cols)), names(dd)[num_cols]))
replace_na(dd, r)
但我正在寻找更整洁/更习惯/更好的东西...
tidyselect
/编程方式实现),第一个是我正在寻找的解决方案(矢量应用)。暂时还不能接受。 - Ben Bolker