将自日期以来的小时数转换为 r 中的日期时间格式

Emm*_*bbs 5 r

我从一个网站下载了一些气候数据,并试图在 R 中对其进行分析。

数据的时间格式是自 1800-01-01 00:00 以来的小时数。例如:

ss <- seq(447042,455802, length.out = 1461)
Run Code Online (Sandbox Code Playgroud)

它以 6 小时为间隔显示数据。

如何将其转换为 R 中的实际时间。此示例应提供 1851 的数据:

1851-01-01 00:00
1851-01-01 06:00
Run Code Online (Sandbox Code Playgroud)

等等...

如何才能做到这一点?

任何意见,将不胜感激。

42-*_*42- 7

我认为你有一个错字以及不正确的计算。假设您想要 1880 年的未来而不是过去。所以你想要的可能是 1951 年?然后将小时转换为秒,这是 POSIXt 分类对象的基础,只需乘以 3600 = 60*60:

> tail( as.POSIXct(ss*3600,origin='1880-01-01 00:00') )
[1] "1931-12-30 04:00:00 PST" "1931-12-30 10:00:00 PST" "1931-12-30 16:00:00 PST"
[4] "1931-12-30 22:00:00 PST" "1931-12-31 04:00:00 PST" "1931-12-31 10:00:00 PST"
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,1951 年也不在任何地方,但也许你有两位数,你想要 1931 年?跨越夏令时开始前几年范围的转换以及跨世纪界限的使用闰年和闰秒的转换可能与您的期望不“一致”。

  • 60*60=3600。另外,可以通过以下方式避免此类错误:`as.POSIXct("1880-01-01 00:00")+as.difftime(ss,units="hours")`。 (3认同)