将数字转换为日期

时间:2013-01-09 22:21:06

标签: r

我有一张表,其中一列是20130109或YearMonthDay中的日期,没有间距。

我正在尝试绘制这些点,并且由于这种奇怪的间距,最终会出现图中的大间隙,因此希望将这些数字转换为日期。

我一直在尝试使用as.Date(as.character(20130107), "%y%m%d"),但总是会返回NA

2 个答案:

答案 0 :(得分:18)

您需要%Y(4位数年份)而不是%y(2位数年份):

> as.Date(as.character(20130107), "%Y%m%d")
[1] "07-01-2013"

答案 1 :(得分:3)

Using lubridate

library(lubridate)

parse_date_time(as.character(20130107), "%Y%m%d")

If you wanted to just extract certain elements of the date, this is easy with strftime. For example, just the year:

strftime(parse_date_time(as.character(20130107), "%Y%m%d"), "%Y")