问题描述
我有一个包含三十个文件的文件夹,每个文件约0.5GB。
我想将它们全部读取到一个数据表中。理想情况下,我还想只读入包含特定单词的文件。
我正在使用数据表,因此,如果可能,我想使用New-Item {a..z}.txt,{A..Z}.txt,{0..9}.txt
。我尝试将文件夹放入无效的path参数。
我正在尝试这种方法,我想知道是否有更好的方法
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 )
解决方法
我们可以使用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')