首页 > 解决方案 > R - 循环打开多个文件

问题描述

我正在尝试将不同的循环合并到一个大的 for 循环中。每个较小的循环都包括打开不同的文件。我的问题是,如何在单个循环的每次迭代中打开不同的数据集?

我的第一个想法是创建一个文件,其中包含我要在每次迭代中打开的数据集的名称,例如:

> datasets <- read.csv("dataset_info.csv", header=TRUE, sep=";")
> datasets 
db_combination  dataset1    dataset2    dataset3
1               dataA_1     dataA_2     dataA_3.csv
2               dataB_1     dataB_2     dataB_3.csv
3               dataC_1     dataC_2     dataC_3.csv
4               dataD_1     dataD_2     dataD_3.csv

(dataset1 和 dataset2 将是环境中已经存在的数据库,而 dataset3 将是存储在给定文件夹中的 csv 文件。)

我想我会开始循环打开每个文件,比如:

    for (db in datasets$db_combination) {
      print(db)
      
      db_unique<- datasets[datasets$db_combination==db,] # this would give me the row with each dataset needed per iteration

      db_1 <- db_unique$dataset1    
      db_2 <- db_unique$dataset2
      db_3 <- read.csv(get(db_unique$dataset3[db]), header = TRUE, sep = ",")

# and then continue with the rest of the loop
}

但这不起作用,因为对于 db_1 和 db_2 它只是给了我数据集的名称,作为一个字符,它并没有真正打开它,对于 db_3 我得到一个错误:

In file(file, "rt") :
  cannot open file 'dataA_3.csv': No such file or directory

关于如何处理这个问题的任何想法?或者另一种正确打开这些文件的方法?

提前致谢。

标签: for-loopdatasetread.csv

解决方案


推荐阅读