我必须读取目录中的文件,然后从文件名中提取日期。
filenames <- list.files(path="C:/Downloads/vmstat", pattern="*vmstat*", full.names=TRUE)
像这样的文件名:
C:/Downloads/vmstat/vmstat.2016.11.22.Tue
我需要从该文件名中提取
2016.11.22
并将其分配给像dat
这样的变量。如何从文件名中提取日期? 最佳答案
我们可以使用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"