我有50列和150行的数据矩阵。我想对数据集进行交叉验证。数据子集如下所示:
CN+OU
首先,我想用>dat<-matrix(c(7,8,5,6,4,5,6,6,1,9,8,5,14,11,15,14,21,24,25,26, 31,34,35,37), nrow=8, ncol=4)
>colnames(dat)<- c("ABC", "BCD", "CDE", "DEF")
>dat<-data.frame(dat)
替换第一个值,并使用NA
和MV
来估算kNN
。为整个数据集保存数组中列中每个值的插补值并显示结果。
我在这里做了一些事情
Rf
运行上面的代码后,我收到的警告很少
library(VIM)
col <- names(dat)
das <-dat
for(name in col){
sp <- das[[name]]
sp<-data.frame(sp)
ps<-das[,-which(names(das) == name)]
sp<-cbind(sp,ps)
for(i in 1:length(sp[,1])){
d<-sp[,1]
p1<-sp[,2:NCOL(sp)]
d[i]<-NA
d<-data.frame(d)
d<-cbind(d,p1)
mnt_im<-kNN(d,variable="d", 3)
mnt_m[i]<-mnt_im[i,1]
d<-sp[,1]
}
#g<-assign(name, mnt_m)
mnt_m<-data.frame(mnt_m)
write.csv(mnt_m, "/home/Desktop/result.csv", append=TRUE)
}
此外,它没有正确计算值,甚至附加在一个向量列中。我希望它分别用于单独的列。
我认为估算存在错误。
我必须为每个变量做同样的事情。我不知道到底发生了什么。你能找到我正在做的代码中的错误吗? Warning messages:
1: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) :
attempt to set 'append' ignored
2: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) :
attempt to set 'append' ignored
3: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) :
attempt to set 'append' ignored
4: In write.csv(mnt_m, "/home/Desktop/result.csv", append = TRUE) :
attempt to set 'append' ignored
也没有正确追加。如何对整个数据集进行此操作?我是R.的新手。如何对write.csv
以及kNN
中的rfImpute
进行此操作?