小编kra*_*ray的帖子

在读取和绑定多个文件时,将"filename"列添加到表中

我在多个目录中有许多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()为每个文件运行.

r lapply

5
推荐指数
3
解决办法
3749
查看次数

lubridate - 从日期中提取两位数的日期

我需要从日期中提取两位数的天数。

例如:

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 在这里似乎不起作用。任何建议,将不胜感激!

r lubridate tidyr

2
推荐指数
1
解决办法
2547
查看次数

标签 统计

r ×2

lapply ×1

lubridate ×1

tidyr ×1