你如何从R中的文件名中提取日期?

时间:2016-11-30 15:04:48

标签: r regex

我必须读取目录中的文件并从文件名中提取日期。

filenames <- list.files(path="C:/Downloads/vmstat", pattern="*vmstat*", full.names=TRUE)

这样的文件名:

C:/Downloads/vmstat/vmstat.2016.11.22.Tue

我需要从此文件名中提取2016.11.22并将其分配给dat之类的变量。我如何从文件名中提取日期?

1 个答案:

答案 0 :(得分:3)

我们可以使用gsub来匹配非日期的子字符串,并将其替换为空格(""

gsub("^[^0-9]+\\.|\\.[A-Za-z]+$", "", filenames)
#[1] "2016.11.22"

或提取basename,然后使用Date转换为lubridate课程

lubridate::ymd(basename(filenames))
#[1] "2016-11-22"

数据

filenames <- "C:/Downloads/vmstat/vmstat.2016.11.22.Tue"