通过R中的CSV文件列表循环或批处理

时间:2017-02-05 01:33:26

标签: r loops lapply

我想遍历一个CSV文件列表:

Sub ExportTable6()
    ExportRangeAsImage Worksheets("Sheet6").ListObjects("Table6").Range, _
        ThisWorkbook.Path & "\Table6.png"
End Sub

也输出到相应的CSV文件:

Macro <- read.csv("P:/R/R_Input/JWN_Input.csv")
Macro <- read.csv("P:/R/R_Input/BBY_Input.csv")
...

以上两项是唯一的唯一输入/输出。代码正文如下。我试图使用下面的代码体基本上批处理输入/输出CSV文件。

write.csv(a, "P:/Model_Output/JWN.csv", row.names = F, na="")
write.csv(a, "P:/Model_Output/BBY.csv", row.names = F, na="")
...

1 个答案:

答案 0 :(得分:0)

只需创建一个文件名列表并循环浏览它们:

Files = c("JWN", "BBY")

for(f in Files) {
    InFile  = paste("P:/R/R_Input/", f, "_Input.csv",  sep="")
    OutFile = paste("P:/R/R_Input/", f, "_Output.csv", sep="")
    Macro <- read.csv(InFile)

      ## All of that other code 

      write.csv(a, OutFile, row.names = F, na="")
}

基于评论的附录: 原始海报出错:

  

文件错误(con,“w”):所有连接都在使用“

通过在closeAllConnections()语句后立即添加write.csv来解决此问题。