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