在R中的多个目录中读取多个csv文件

时间:2018-10-29 16:37:06

标签: r csv fread

我想从differents目录中读取多个.csv文件,然后将其放在单个数据框中。

我有两种目录可供读取:

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Ap deo/Variant/Ap_deo_1.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Ap deo/Variant/Ap_deo_2.csv


E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Bar soap/Variant/Bar_soap_1.csv


E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Bar soap/Variant/Bar_soap_2.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Ap deo/Variant/Ap_deo_1.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Ap deo/Variant/Ap_deo_2.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Bar soap/Variant/Bar_soap_1.csv


E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Bar soap/Variant/Bar_soap_2.csv

因此,在上面的目录中,我必须根据要在路径中给出的内容(例如在奥地利或瑞士的路径中所示)读取所有文件...所以有很多国家/地区,例如Ap deo或肥皂在每个国家/地区有8个类别,我只想阅读csv变体文件夹,因此这些csv文件可以是1或2或3,有时甚至更多,我该如何读取这些文件?

1 个答案:

答案 0 :(得分:1)

也许类似以下内容。

base <- "E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/"
or1 <- "(Austria|Switzerland)"
or2 <- "(Ap deo|Bar soap)"

pat <- paste(or1, or2, "Variant/.*\\.csv$", sep = "/")

filenames <- list.files(path = base, pattern = pat, 
                        recursive = TRUE, full.names = TRUE)

df_list <- lapply(filenames, read.csv)
names(df_list) <- sapply(filenames, basename)