定义两位数年份日期格式的年份

时间:2017-01-04 09:00:30

标签: r

假设我在R。

中将以下日期从字符转换为简单日期格式
character_date <- "19-Jan-44"
date <- as.Date(strptime(x = as.character(character_date), format= "%d-%b-%y"))
> date
[1] "2044-01-19"

R假设它是2044而不是1944(这是期望的),我如何告诉R它实际上是哪一年?

非常感谢!

2 个答案:

答案 0 :(得分:0)

我们可以创建一个函数来执行此操作

library(lubridate)
f1 <- function(x, year=1970){
   x <- dmy(x)
   m <- year(x) %% 100
   year(x) <- ifelse(m > year %% 100, 2000+m, 1900+m)
  x
}

f1(character_date)
#[1] "1944-01-19"

如果这总是19作为年份的前缀

dmy(sub("-(\\d+)", "-19\\1", character_date))
#[1] "1944-01-19"

答案 1 :(得分:0)

您只需将"-19"附加到字符串并执行format = "%d-%b-y-%C"