parse_date_time()将DayofYear转换为日期

时间:2019-06-12 11:35:24

标签: r lubridate

嗨,我正在使用lubridate软件包, 我想将日期从1:365(一年中的某天)转换为日期格式:

例如 60 -> 2019-03-01 UTC

对于1-99,它可以正常工作,但对于100-365,我会得到警告按摩。

lubridate::parse_date_time(99, "j")
[1] "2019-04-09 UTC"

lubridate::parse_date_time(100:365, "j")
[1] NA ...
[365] NA

Warning message:
All formats failed to parse. No formats found.

让任何人接受相同的警告按摩或有解决方法?

2 个答案:

答案 0 :(得分:1)

您可以轻松地通过使用

指定原始日期来完成此操作
  

as.Date(100:365, format = "%j", origin = "01-01-2019")

答案 1 :(得分:1)

如果提供字符输入,效果很好

lubridate::parse_date_time('100', "j")
# [1] "2019-04-10 UTC"
lubridate::parse_date_time(paste(100:365), "j")
# [1] "2019-04-10 UTC" "2019-04-11 UTC" "2019-04-12 UTC" "2019-04-13 UTC" "2019-04-14 UTC" "2019-04-15 UTC" "2019-04-16 UTC" "2019-04-17 UTC"
# ...
# [265] "2019-12-30 UTC" "2019-12-31 UTC