在所有文件中循环:“文件”;“密斯森林”;用R包装
问题的搜索结果: 但是,我可能无法正确应用解决方案 我的案例 我有一个包含数百个csv文件的文件夹。我需要在R中运行“missForest”包来插补缺失的值。 如果我逐个运行文件包,我必须执行以下操作:在所有文件中循环:“文件”;“密斯森林”;用R包装,r,loops,csv,R,Loops,Csv,问题的搜索结果: 但是,我可能无法正确应用解决方案 我的案例 我有一个包含数百个csv文件的文件夹。我需要在R中运行“missForest”包来插补缺失的值。 如果我逐个运行文件包,我必须执行以下操作: ##change the file name G1344108 <- read.csv(file.choose(), header = TRUE) ##run missForest with default settings G1344108.Forest <- missFo
##change the file name
G1344108 <- read.csv(file.choose(), header = TRUE)
##run missForest with default settings
G1344108.Forest <- missForest(G1344108, verbose = TRUE, maxiter = 5)
##save the imputed data matrix using filename$ximp
write.csv(G1344108.Forest$ximp, file = 'G1344108_output.csv')
您尝试使用了哪些解决方案?他们不使用
file.choose()
。你有没有尝试过让这些答案适应你的问题?如果是这样的话,你能确切地说明你有什么问题吗?我试了第二次和第三次。当我想逐个运行文件的代码时,我使用file.choose()#2返回一些错误,如错误:找不到对象“my_files”!我只是用其他代码替换了我的代码,并删除了类似file.choose()的内容#3解决方案返回以下信息:is.data.frame(x)中的Ng.output write.csv(Ng.output$ximp,file=“Ng.output.csv”)错误:未找到对象“Ng.output”显示您在问题中实际运行的代码(不是注释)。给出具体的错误消息。它会出现在列表中。文件和的循环或lappy
/sapply
就是您想要的。这正是您链接到的所有三个问题的答案。你说得对。我已经编辑了我的帖子。
all.files <- list.files()
my.files <- grep(".*csv", all_files, value=T)
for(i in my.files){
# do your operations here
G1344108.Forest <- missForest(G1344108, verbose = TRUE, maxiter = 5)
# save
output.filename <- gsub("(.*?).csv", "\\1.csv", i)
write.table(G1344108.Forest$ximp, output.filename)
}
Error in grep(".*csv", all_files, value = T) :
object 'all_files' not found
Error: object 'my.files' not found