从YYYYddd转换为日期格式

时间:2016-10-28 01:10:20

标签: r date

我有一个日期列“日期”的df,如:

2016001 2016002 .. .. 2016366(这是闰年)

如何将这些转换为: 2016年1月1日 2016年1月2日 .. .. 2016年12月31日

1 个答案:

答案 0 :(得分:4)

您可以使用strptime()中使用的基本R函数as.POSIXct()来解析POSIXct对象的日期。对于YYYYddd,格式为%Y%j

p <- strptime(c("2016001", "2016002", "2016366"), format="%Y%j", tz="UTC")
p
[1] "2016-01-01 UTC" "2016-01-02 UTC" "2016-12-31 UTC"

然后,如果您想要显示2016年1月1日2016 ... 2016年12月31日,您可以使用paste()

paste(p$mon+1, p$mday, p$year+1900, sep="/")
[1] "1/1/2016"   "1/2/2016"   "12/31/2016"