【发布时间】:2015-06-15 14:04:58
【问题描述】:
我正在阅读一个csv 文件,不幸的是我的数据框有很多缺失值。一个小片段如下:
df <- data.frame(Size= c(800, 850, 1100, 1200, 1000),
Value= c(900, NA, 1300, 1100, NA),
Location= c(NA, 'midcity', 'uptown', NA, 'Lakeview'),
Num1 = c(2, NA, 3, 2, NA),
Num2 = c(2,3,3,1,2),
Rent= c('y', 'y', 'n', 'y', 'n'))
我想使用weka 预测一些结果,但如果我缺少多个属性,我就无法做到。我知道我应该使用函数is.na,但我不确定它可以通过什么方式完成,因为到目前为止我只将它用于求和和计数。
编辑: 例如,在此文件中,5 个实例中有 4 个缺失值。实例 2 和 5 共享相同的缺失属性(B 和 D),而实例 1 和 4 也共享相同的缺失值(C)。我想要得到的是一个由这些实例组成的数据框,因此我可以将它们导出到文件中并单独对这些文件运行分析。一个输出的例子可以是
> A
> B
编辑 2:
我想保存拆分,到目前为止我试过这个:
write.csv(split(temp, index), file = "C:/Users/Nikita/Desktop/splits.csv", row.names=FALSE)
但是它将所有的拆分写在一行中。有没有办法用一条线分隔它们?
编辑 3:
我的步骤是:
data <- read.csv("location")
index <- apply(is.na(data)*1, 1,paste, collapse = "")
s <- split(data, index)
lapply(s, function(x) {names(x) <- names(data);x})
big.data <- do.call(rbind, s)
write.csv(big.data, file = "location", row.names=FALSE)
我错过了什么吗?
【问题讨论】:
-
请详细解释您的问题,并尽可能添加可重现的示例或至少是所需的输出。帮助用户帮助你。