在我的R数据集中,有一个 data $ date 变量,它由两种不同的文字组成:有些是 dd-mmm-yy (例如“ 14-nov -17“),其他为 ddMMMyyyy (例如“ 14APR2016”)。
在这里我被卡住了。我如何才能将所有这些都更新为日期格式?
谢谢
答案 0 :(得分:2)
一个选项是parse_date_time
中的lubridate
,它可以采用多种Date
格式
library(lubridate)
parse_date_time(v1, c("%d-%b-%y", "%d%b%Y"))
#[1] "2017-11-14 UTC" "2016-04-14 UTC"
或者使用anydate
中的anytime
。但是,应用anydate
后,检查是否所有format
都已存在
library(anytime)
getFormats()
如果缺少某些format
,请添加addFormats
addFormats("%d-%b-%y")
然后在日期的列/向量上应用anydate
anydate(v1)
#[1] "2017-11-14" "2016-04-14"
v1 <- c("14-nov-17", "14APR2016")
答案 1 :(得分:0)
另一种选择,如果您想使用基数R和正则表达式:
data$date <- as.Date(sub('(\\d{2})(\\w{3})(\\d{2})(\\d{2})', '\\1-\\2-\\4', data$date),
format = "%d-%b-%y")