0

我正在尝试使用使用日期(DOY)并想要计算日期的数据集:

要将 DOY 格式转换为我使用的日期:

as.Date(DOY, origin = "%Y-01-01")

但我似乎遇到了问题。例如:DOY =1212003

as.Date(121, origin = "2003-01-01")
[1] "2003-05-02"

这应该是:("2003-05-01"见这里:https ://asd.gsfc.nasa.gov/Craig.Markwardt/doy2003.html )

该代码适用于闰年:

as.Date(121, origin = "2004-01-01")
[1] "2004-05-01"

(并在此处正确显示:https ://asd.gsfc.nasa.gov/Craig.Markwardt/doy2004.html )

问题仍然存在2005

我在这里遗漏了一些明显的东西还是缺少闰年的代码有问题?

4

1 回答 1

0

as.Date will accept numeric data (the number of days since an epoch), but only if origin is supplied.

https://www.rdocumentation.org/packages/base/versions/3.6.1/topics/as.Date

因此,如果将整数转换为日期,该整数将计算自原点以来经过的天数这意味着日期将是最后一天过后的第二天

另一种方法是使用儒略日期

as.Date('2005-121', '%Y-%j')

会产生

[1] "2005-05-01"

于 2019-10-09T15:32:31.917 回答