根据data.table的结果选择性地进行Fread

时间:2017-02-07 14:43:59

标签: r data.table

我有一个文件夹,里面装满了某些命名模式的csv文件(全部有4位数字)," 0001.csv"," 0002.csv"所有文件都有相同的标题和格式。

如果我想要合并所有文件或对它们进行分析。我可以这样做

all.files <- list.files(path = "/Users",pattern = ".csv")
DT <- lapply(all.files, fread # or other self-defined function)
DT <- rbindlist(DT)

但现在我想基于list.files的某个输出执行data.table

dt <- data.table(Ticker = c("0001","0002","0003","0004"), Status = c("True", "True","True","False"))
> dt
   Ticker Status
1:   0001   True
2:   0002   True
3:   0003   True
4:   0004  False

我想在status中合并TRUEdt的文件。不是全部。因此list.files可能不适用。

有什么建议吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

如果我能正确理解,可以这样做:

DT <- lapply(paste0(dt[Status == 'True', Ticker], '.csv'), function(x) fread(x))
DT <- rbindlist(DT)