【发布时间】:2018-02-28 04:47:51
【问题描述】:
我在多个目录中有大量 csv 文件,我想将它们读入 R tribble 或 data.table。我使用“list.files()”并将递归参数设置为 TRUE 创建文件名和路径列表,然后使用“lapply()”读取多个 csv 文件,然后使用“bind_rows()”将它们全部粘贴一起:
filenames <- list.files(path, full.names = TRUE, pattern = fileptrn, recursive = TRUE)
tbl <- lapply(filenames, read_csv) %>%
bind_rows()
这种方法效果很好。但是,我需要从每个文件名中提取一个子字符串并将其作为列添加到最终表中。我可以像这样使用“str_extract()”获得我需要的子字符串:
sites <- str_extract(filenames, "[A-Z]{2}-[A-Za-z0-9]{3}")
但是,当 lapply() 为每个文件运行 read_csv() 时,我一直不知道如何将提取的子字符串添加为列。
【问题讨论】: