如何预处理数据以处理R中的缺失值

时间:2014-03-20 10:05:40

标签: r dataframe statistics dataset data-mining

我正在尝试在 R 中预处理我的数据,以便我可以对属于与给定元组相同的类的所有样本使用 “属性均值”< / em>

数据源提供程序已将缺失值或超出范围的值指定为值-1。但是我想根据上面粗体描述的数据挖掘原则替换那些缺失值。作为我的类决策者的列是“事故严重性”,我想为属于相同级别的事故严重性的所有样本赋予属性均值,使其具有缺少属性值的元组严重性级别。

由于有多个列缺少值,我想我必须一次一个地对所有列重复执行taskk。我应该使用什么r命令。

我的数据框中主要有两种类型的数据类型(向量)。因子用于日期和时间列,其中整数用于大多数其他列。

有没有办法在堆栈溢出时上传数据集的子集?

这是指向可重现数据集https://drive.google.com/file/d/0B3cafW7J7xSfSkRTYWRWMHhaU2c/edit?usp=sharing

的链接

更新2:既然存在数据集,请帮助我将任何列中“-1”的值更改为值,该值是具有相同值的所有元组的平均值将“Accident_severity”属性作为具有缺失值的元组。

更新3:请忽略列“X2_roadclass”和“X2_Road_type”,因为它们大多是空白的,我正在放弃它们。感谢

1 个答案:

答案 0 :(得分:0)

请查看这是否接近您的需要

library(ggplot2)
library(reshape)
library(plyr)

创建一些数据

   set.seed(1)
    df <- data.frame(severity=rep(c('high', 'moderate', 'low'), each = 3),
                     factor1 = rep(c(1,2,3), each = 6),
                     factor2 = rep(c(4,5,6), times = 3),
                     date=rep(c('2011-01-01','2011-01-03','2011-01-10'),
                           times = 3), stringsAsFactors = F)

有一些-1

df$factor2[3] <- -1
df$factor1[1] <- -1

用NA替换它们

df[df == -1] <- NA

重塑它

mdf <- melt(df, id.vars= c("severity", 'date'))

综述

ddply(mdf, .(severity, variable), summarise, mean=mean(value, na.rm = T))

  severity variable mean
1     high  factor1  1.6
2     high  factor2  4.8
3      low  factor1  2.5
4      low  factor2  5.0
5 moderate  factor1  2.0
6 moderate  factor2  5.0

根据提供的数据,我会做这样的事情

dt <- read.csv('./Stackoverflow/datatry1.csv')

#head(dt[ , -c(1:3) ]) # Exclude some unwanted colums
mdt <- melt(dt[ , -c(1:3) ], id.vars= c("Accident_Severity", 'Date',
                                        'Day_of_Week', 'Time'))
dts <- ddply(mdt, .(Accident_Severity, variable), summarise,
             mean=mean(value, na.rm = T))
dts

   Accident_Severity                   variable         mean
1                  1         Number_of_Vehicles   1.00000000
2                  1            X1st_Road_Class   3.00000000
3                  1           X1st_Road_Number 503.00000000
4                  1                  Road_Type   6.00000000
5                  1                Speed_limit  30.00000000
6                  1            Junction_Detail   3.00000000
7                  1            X2nd_Road_Class  -1.00000000
...