简短的标准代码,用于清除大多数常见数据框无效条目

时间:2015-08-04 15:43:49

标签: r data-cleaning

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

简单的具体数据框示例
清理常见的无效条目:
 (我真正的前任可以有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  

我从来不知道“罪魁祸首”的价值是什么,
(或者它们将出现在DF列中)......

我希望缺失值显示估算/替换的有效值
 列平均值/中值。

类似于仅数字列中的无效“字符串”值。

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

1 个答案:

答案 0 :(得分:2)

生成数据:

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

逐列清理功能(如果还有其他情况需要处理,可以为此添加更多逻辑):

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)