6

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

我正在尝试绘制这些点,并且由于这个奇怪的间距,最终在图中出现了很大的差距,因此想要将这些数字转换为日期。

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

4

2 回答 2

19

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

> as.Date(as.character(20130107), "%Y%m%d")
[1] "07-01-2013"
于 2013-01-09T22:22:27.437 回答
3

使用润滑脂

library(lubridate)

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

如果您只想提取日期的某些元素,使用 strftime 很容易。例如,只是年份:

strftime(parse_date_time(as.character(20130107), "%Y%m%d"), "%Y")
于 2015-06-15T15:09:34.553 回答