从多个目录将多个.csv文件导入Rstudio中的一个数据集

时间:2018-03-29 18:15:52

标签: r csv import

我正在做一个项目,我必须将大量的.csv文件导入Rstudio。这些文件对应于日期。每个日期都有一个目录,其中包含当天的文件。为了获得我用过的一天的所有数据:

im = list.files(pattern = "*.csv")
my-data = lapply(im, read_csv)

问题是我有数百天的文件,所以要经过数百个目录。有没有办法将所有目录中的所有文件一次性提取到同一个数据表中?奖金,如果它可以包括数据表中的日期(它所在的目录的标题)。如果这有所不同,我们也会使用tidyverse和tibbles。

2 个答案:

答案 0 :(得分:1)

如果所有目录都在一个根目录中,请尝试list.files(recursive = TRUE),这也会搜索子目录。另外,查看purrrset_names()的{​​{1}}技巧,它会迭代对象的内容和名称,让您将文件名作为列引入。像下面这样的东西。请注意,您必须使用一些字符串工具才能获得imap末尾的日期。

filepaths

答案 1 :(得分:1)

我遇到了同样的问题 - 以下解决方案对我有用: - )

require(tidyverse)

path <- "/my/root/"

read_plus <- function(flnm) {
  read_csv(flnm) %>% 
    mutate(filename = flnm)
}

my_data <-
  list.files(path, pattern = "*.csv", 
             recursive = T,
             full.names = T) %>% 
  map_df(~read_plus(.))