只用 R 中的字符制作时间戳

Making timestamp out of just characters in R

我试图用这个日期制作一个可识别的时间戳:

a <- VN 20190307
a <-gsub("\D", "", a) ##Removed VN
as.POSIXct(a, format="%Y-%m-%d")

但是,我得到了 NA。结果应该类似于 2019-03-07

旁注:这只是机密数据集的一部分

另一种方法是直接使用 lubridate 包中的 ymd 函数:

a <- 'VN 20190307'
lubridate::ymd(a)
#"2019-03-07"

如果值 "VN" 是固定的,您可以使用 as.Date 作为 -

a <- "VN 20190307"
as.Date(a, 'VN %Y%m%d')
#[1] "2019-03-07"

如果 "VN" 未修复,您可以使用 gsub 继续您的方法,然后使用 as.Date

as.Date(gsub('\D', '', a), '%Y%m%d')
#[1] "2019-03-07"