如何将多个同名文件从不同的文件夹导入到R中?

zz2j4svz  于 2024-01-03  发布在  其他
关注(0)|答案(2)|浏览(226)

我看到了一些帖子,但没有一个符合我的要求。
基本上,假设我有一个像C:\User\Files\这样的路径,在Files中我有三个文件夹Data1Data2Data3。在每个Data文件夹中,我有两个.csv文件,它们被命名为相同的file1.csvfile2.csv。我如何在循环中分别从每个文件夹导入这两个文件?我使用了list.files,但它将所有的file1.csv合并到一个文件中,将file2.csv合并到另一个文件中。
我现在尝试的是:

  1. files1 <- list.files(path = "C:\\User\\Files\\",
  2. pattern = "file1.csv",
  3. recursive = TRUE, full.names = TRUE)
  4. files2 <- list.files(path = "C:\\User\Files\\",
  5. pattern = "file2.csv",
  6. recursive = TRUE, full.names = TRUE)

字符串
但是这将所有的file1.csv组合在一起成为一个嵌套框架,files2.csv也是如此。

xmd2e60i

xmd2e60i1#

尝试这种方法

  1. path = # set path accordingly, ~ "C:\User\Files\"
  2. file_paths = unlist(lapply(
  3. file.path(path, paste0("Data", 1L:3L)), # Data1, Data2, Data3
  4. \(x) { list.files(path = x, pattern = "\\.csv$", full.names = TRUE) }))
  5. list2env(lapply(setNames(file_paths, basename(file_paths)), read.csv),
  6. envir = .GlobalEnv)
  7. # rm(path, file_paths)

字符串
它假定所有文件都有不同的名称。
免责声明:我正在使用mac0S,并怀疑file.path()是0S不可知的。

vsikbqxv

vsikbqxv2#

我是这样做的:

  1. files1 <- list.files(path = "C:\\User\\Files\\",
  2. pattern = "file1.csv",
  3. recursive = TRUE, full.names = TRUE)
  4. files2 <- list.files(path = "C:\\User\Files\\",
  5. pattern = "file2.csv",
  6. recursive = TRUE, full.names = TRUE)
  7. myfiles1 = lapply(files1, read.csv)
  8. myfiles2 = lapply(files2, read.csv)
  9. i = 1:length(myfiles1)
  10. fn <- function(i) {
  11. dfFiles1 = myfiles1[[i]]
  12. dfFiles2 = myfiles2[[i]]
  13. }

字符串

展开查看全部

相关问题