我在多个目录中有许多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()
Run Code Online (Sandbox Code Playgroud)
这种方法很好.但是,我需要从每个文件名中提取一个子字符串,并将其作为列添加到最终表中.我可以使用"str_extract()"得到我需要的子字符串,如下所示:
sites <- str_extract(filenames, "[A-Z]{2}-[A-Za-z0-9]{3}")
Run Code Online (Sandbox Code Playgroud)
然而,我被困在如何将提取的子字符串添加为列,因为lapply()通过read_csv()为每个文件运行.
我需要从日期中提取两位数的天数。
例如:
date <- as.Date(01-01-2016)
Run Code Online (Sandbox Code Playgroud)
year(date) 会给 '2016'month(date) 会产生“1”day(date) 会返回“1”我想要month()并day()返回 '01'
标准的 %D 或 %M 在这里似乎不起作用。任何建议,将不胜感激!