我可以使用 fread 下载文件夹中的所有文件吗?

Can I use fread to download all the files in a folder?

我有一个包含三十个文件的文件夹,每个大约 0.5GB。

我想将它们全部读入一个数据table。理想情况下,我也想只读入具有特定单词的文件。

我正在使用数据 table,所以我想尽可能使用 fread。我尝试将文件夹放入无效的路径参数中。

我正在尝试这种方法,我想知道是否有更好的方法

folder <- "~/Downloads/My Folder"
all.files <- list.files(path = folder, pattern = ".csv")
setwd(folder)

l <- lapply(all.files, fread, sep=",")
dt <- rbindlist( l )
setkey( dt , ID )

这些是文件名的示例

filename01_2020.csv
filename01_2019.csv
filename01_2018.csv

我们可以使用pattern参数来匹配子字符串'filename',后跟一个或多个数字(\d+),然后是_,四位数字('year') 和字符串末尾 ($) 的 .csv

all.files <- list.files(path = folder, pattern = "^filename\d+_\d{4}\.csv$")

l <- lapply(all.files, fread, sep=",")
dt <- rbindlist(l )
setkey(dt, ID)
unique(dt, by = 'ID')