字符2位数的年份转换为仅年份

时间:2019-06-11 04:55:19

标签: r date character 2-digit-year

使用R

有大量的临床健康数据可供使用,但日期很奇怪

最有问题的是2digityear/halfyear,例如98/2,这意味着在1998之后的July 1中的某个点

我已将该列分为2个字符列,例如982,但现在需要将2位的年份字符串转换为实际年份。

我尝试了as.Date(data$variable,format="%Y"),但不仅获得了0098而不是1998的转换,而且还任意增加了今天的月份和年份(实际数据没有月或日)。

0098-06-11

我怎么只得到1998年呢?

1 个答案:

答案 0 :(得分:1)

不优雅。但是使用lubridate和as.Date的组合,您可以得到。

library(lubridate)
data <- data.frame(variable = c(95, 96, 97,98,99), date=c(1,2,3,4,5))
data$variableUpdated <- year(as.Date(as.character(data$variable), format="%y"))

,并且仅使用基数R

data$variableUpdated <- format(as.Date(as.character(data$variable), format="%y"),"%Y")