在R中批量读取一次读取多个文件

时间:2016-08-16 20:23:29

标签: r batch-processing

我有100个文件要运行R来进行分析。我的一些代码使用单个文件,我发现我可以使用以下代码批量处理它们

setwd("~/directory of interest")
files <- list.files(pattern = "*.csv$")
files

for(i in 1:length(files)){
DataSet1 <- read.csv(file = files[i], header = TRUE, stringsAsFactors = TRUE)
do my algorithum
setwd("~/location of saving directory")
write.csv(DataSet1, file = files[i], quote = FALSE, row.names = FALSE)
setwd("~/directory of interest")}

我有另一个分析,其中我有2个文件(1对),这两个文件都需要作为我的alogorithum然后可以运行的两个不同的数据集读入。有没有办法以批处理格式执行此操作。我的文件被命名为它们总是彼此相邻,(也就是当我在WD中识别文件时,它们应该是DataSet1a,DataSet1b,DataSet2a,DataSet2b等)因为我有100对文件我可以手动一次做一对,但我觉得必须有一个更好的方法。感谢

1 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情:

setwd("~/directory of interest")
filesA <- list.files(pattern = "*a.csv$")
filesB <- list.files(pattern = "*b.csv$")

for(i in 1:length(filesA)){
    DataSet1A <- read.csv(file = filesA[i], header = TRUE, stringsAsFactors = TRUE)
    DataSet1B <- read.csv(file = filesB[i], header = TRUE, stringsAsFactors = TRUE)
    ...
}