Dear members, Could you please help me on this issue. I've already searched and I watched some videos, but it was not useful.I need help to loop through the files in a folder (200+ csv files). I am using missForest() to impute missing values.?If I run the code for each single file, I have to do as following: ## main script for each single file G1334108 <- read.csv(file.choose(), header = T) G1334108.F <- missForest(G1334108, verbose = TRUE, maxiter = 5) write.csv(G1334108.F$ximp, file = 'G1334108_F.csv') I tried these below script codes to loop the function before writing here: # 1st tryall.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) }## ?2nd try files <- list.files()lapply(files, function(x) {my.files <- read.csv("*.csv", header = T)missforest.out <- missForest(my.files, verbose = TRUE, maxiter = 5)write.csv(missforest.out$ximp, file = '*_F.csv') }Thank you for the time.Best regards,Morteza [[alternative HTML version deleted]]
Hi Morteza, What you may want is this: my.files<-list.files(pattern=".csv") newfiles<-gsub(".","_F.",my.files,fixed=TRUE) for(i in 1:length(my.files)) { mydat<-read.csv(my.files[i]) mydatimp<-missForest(mydat,verbose=TRUE,maxiter=5) write.csv(mydatimp$ximp,newfiles[i]) } Jim On Sat, Jan 2, 2016 at 5:32 AM, Morteza Firouzi via R-help < r-help at r-project.org> wrote:> Dear members, > Could you please help me on this issue. I've already searched and I > watched some videos, but it was not useful.I need help to loop through the > files in a folder (200+ csv files). I am using missForest() to impute > missing values. If I run the code for each single file, I have to do as > following: > ## main script for each single file > G1334108 <- read.csv(file.choose(), header = T) > > G1334108.F <- missForest(G1334108, verbose = TRUE, maxiter = 5) > > write.csv(G1334108.F$ximp, file = 'G1334108_F.csv') > > I tried these below script codes to loop the function before writing here: > # 1st tryall.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) > }## 2nd try > files <- list.files()lapply(files, function(x) {my.files <- > read.csv("*.csv", header = T)missforest.out <- missForest(my.files, verbose > = TRUE, maxiter = 5)write.csv(missforest.out$ximp, file = '*_F.csv') > }Thank you for the time.Best regards,Morteza > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.[[alternative HTML version deleted]]
Hi Jim,Thank you very much for the time.You saved me 3 days! Best regards, Morteza On Saturday, January 2, 2016 5:33 AM, Jim Lemon <drjimlemon at gmail.com> wrote: Hi Morteza,What you may want is this: my.files<-list.files(pattern=".csv")newfiles<-gsub(".","_F.",my.files,fixed=TRUE)for(i in 1:length(my.files)) {?mydat<-read.csv(my.files[i])?mydatimp<-missForest(mydat,verbose=TRUE,maxiter=5)?write.csv(mydatimp$ximp,newfiles[i])} Jim On Sat, Jan 2, 2016 at 5:32 AM, Morteza Firouzi via R-help <r-help at r-project.org> wrote: Dear members, Could you please help me on this issue. I've already searched and I watched some videos, but it was not useful.I need help to loop through the files in a folder (200+ csv files). I am using missForest() to impute missing values.?If I run the code for each single file, I have to do as following: ## main script for each single file G1334108 <- read.csv(file.choose(), header = T) G1334108.F <- missForest(G1334108, verbose = TRUE, maxiter = 5) write.csv(G1334108.F$ximp, file = 'G1334108_F.csv') I tried these below script codes to loop the function before writing here: # 1st tryall.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) }## ?2nd try files <- list.files()lapply(files, function(x) {my.files <- read.csv("*.csv", header = T)missforest.out <- missForest(my.files, verbose = TRUE, maxiter = 5)write.csv(missforest.out$ximp, file = '*_F.csv') }Thank you for the time.Best regards,Morteza ? ? ? ? [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]]