R模拟完全随机缺失
为了验证自己填补算法的好坏,一般采用完整数据集进行人为缺失,缺失机制为完全随机缺失(MCAR),可设置不同缺失率。
先下载simFrame包 install.packages("simFrame"),simFrame包可以直接对数据进行缺失处理。
具体操作如下:
1. 导入simFrame包
> library(simFrame)
2. 读取你的完整数据集(csv文件)
> data<-read.csv("D://statlog.csv",sep=",")# sep为逗号分隔符
> dataFrame<-as.data.frame(data)
或者批量处理数据:
path <- "C:\\Users\\Administrator\\Desktop\\test"
fileNames <- dir(path)#批量读入文件一般使用dir(...),通过dir(...)可是获取该路径下所有的文件名
filePath <- sapply(fileNames, function(x){paste(path,x,sep='\\')})
data <- lapply(filePath, function(x){read.csv(x, header=T)})
批量处理数据后生成的是列表的形式。
3. 设置缺失率并将数据集缺失处理。
> nac<-NAControl(NArate=0.1)#在此缺失率为10%。可以自行调整
> x<-setNA(dataFrame,nac)
4. 将有缺失的数据集输出保存为csv文件
> write.table(x,file="D:\\44.csv",sep=",",quote=TRUE)
过程如下图:
处理后的 数据: