繁体   English   中英

将R的循环结果保存在其他文件夹中

[英]save R for loop results in different folder

我的目标是对文件夹(C:\\ sample)中的每个文件应用一组代码,然后将处理后的数据保存到另一个文件夹(C:\\ cleaned)中。 我从这里的其他帖子中学到了(非常感谢!),并为我的案例编写了一个代码:

files <- list.files(path="C:\\sample", pattern="*.CSV", full.names=T, recursive=FALSE)
datalist <- lapply(files, function(x) {
t <- read.csv(x, header=T, na.string=c("", "null","NaN"),stringsAsFactors=FALSE) # load file
t[ , c(4:10)]<- sapply(t[ , c(4:10)], as.numeric)
t <- t[!is.na(t$Node.1),]
})

for( i in 1:length(files)){
write.csv(datalist[[i]] , files[[i]] ,row.names=F )
}

通过运行当前代码,结果将替换文件夹“ C:\\ sample”中的原始文件。 如何稍微修改代码,以便将每个处理的文件保存在另一个文件夹“ C:\\ cleaned”中?

谢谢!

使用full.names=T会将路径添加到文件名,这对于您正在执行的操作full.names=T方便。

解决此问题的最佳方法是设置工作目录

setwd("C:\\sample")

然后列出您的文件

files <- list.files("C:\\sample", pattern="*.CSV")

然后,您可以添加所需的路径

write.csv(datalist[[i]] , paste0("C:\\cleaned\", files[[i]]), 
          row.names=F)

或更改工作目录并直接使用文件名

setwd("C:\\cleaned")
write.csv(datalist[[i]] , files[[i]], row.names=F)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM