为目录中的所有文件运行R代码,并将所有文件输出到单独的目录中

gau*_*mar 2 csv directory r package

输入csv文件是input1 input2 input3 ....直到input50.现在有R代码在每个文件上运行,相应的csv输出是output1,output2,output3,......直到output50.是否存在一些R函数或R包或R代码,它们一个接一个地开始取文件,并且在应用一些R opeartion之后,在septate文件夹中生成相应的输出(逐个).

And*_* T. 5

它会是这样的:

# set working directory to folder with input .csv files
setwd(input_dir)
# get a list of files
input_files <- list.files(input_dir, pattern = "[.]csv")

# loop for reading input and writing an output
for(i in 1:length(input_files)){
  df0 <- read.csv(input_files[i])
  df <-  ... do some operation on df0 ...
  write.csv(df, file = file.path(output_dir, paste0("output", i)))
}
Run Code Online (Sandbox Code Playgroud)

编辑: for循环校正,谢谢Chetan Arvind Patil.

  • .@ AndriyT - 我认为for循环应该从`1`遍历到`length(input_files)`,所以它应该是:`for(i in 1:length(input_files)){`? (2认同)