我有一张表,其中一列是格式为20130109
或 YearMonthDay 的日期,没有间距。
我正在尝试绘制这些点,并且由于这个奇怪的间距,最终在图中出现了很大的差距,因此想要将这些数字转换为日期。
我一直在尝试使用as.Date(as.character(20130107), "%y%m%d")
,但总是返回一个NA
.
我有一张表,其中一列是格式为20130109
或 YearMonthDay 的日期,没有间距。
我正在尝试绘制这些点,并且由于这个奇怪的间距,最终在图中出现了很大的差距,因此想要将这些数字转换为日期。
我一直在尝试使用as.Date(as.character(20130107), "%y%m%d")
,但总是返回一个NA
.
您需要%Y
(4 位数年份)而不是%y
(2 位数年份):
> as.Date(as.character(20130107), "%Y%m%d")
[1] "07-01-2013"
使用润滑脂
library(lubridate)
parse_date_time(as.character(20130107), "%Y%m%d")
如果您只想提取日期的某些元素,使用 strftime 很容易。例如,只是年份:
strftime(parse_date_time(as.character(20130107), "%Y%m%d"), "%Y")