清除最常见数据框无效条目的简短标准代码

brief standard code to clean most common data frame invalid entries

您经常使用的具体、简短的 R 代码是什么,用于估算/删除/清理 80% 最常见的 无效条目 在数据框中?
(我总是收到数据帧:NA、空白、数字列中的字符)。

简单的特定数据框示例
清除常见的无效条目:
(我真正的前任。可以有 10000 多行和 25 个变量...)

         var1  var2  var3  
gene001  10    100   1000  
gene002  20    NA    2000  
gene003  aa    NA    3000  
gene004  40    400    blank!  
gene005  50    500   5000  
gene006  60    600   6000  

我从来不知道 "culprit" 值是多少,
(或它们将出现在哪个 DF 列中)...

我希望缺失值显示估算/替代的有效值
带有 average/median 列值。

与仅数字列中的无效 "string" 值类似。

Objective: 以标准方式快速清理我收到的具有相同常见问题的新 DF,
在使用 randomForest 之前。

生成数据:

dd <- read.csv(text="
var1,var2,var3  
10,100,1000  
20,NA,2000  
aa,NA,3000  
40,400,
50,500,5000  
60,600,6000 ")

Column-wise clean-up函数(如果你想处理其他情况,你可以添加更多的逻辑):

cleanup <- function(x) {
    ## ASSUME all columns should be numeric
    if (is.factor(x) || is.character(x)) {
        x <- suppressWarnings(as.numeric(as.character(x)))
    }
    ## impute median
    m <- median(x,na.rm=TRUE)
    x[is.na(x)] <- m
    return(x)
}

对所有列应用清理:

dd[] <- lapply(dd,cleanup)