2

我有几个气象变量的时间序列数据集。时间数据记录在三个单独的列中:

  1. 年份(例如 2012 年)
  2. 一年中的某一天(例如 261 表示闰年的 9 月 17 日)
  3. 小时:分钟(例如 1610)

有没有办法可以合并三列以在 R 中创建单个时间戳?我不太熟悉 R 如何处理 Day of Year 变量。

感谢您对此的任何帮助!

4

2 回答 2

3

您应该使用ISOdatetime. 此函数将 、 、 和 的向量year作为day输入hourminute并输出一个POSIXct表示时间的对象。您只需将第三列拆分为两个单独的hour minute列,即可使用该功能。

于 2012-11-01T10:46:52.383 回答
3

看起来这个timeDate包可以处理公历时间框架。我没有亲自使用过它,但它看起来很简单。某些方法中有一个shift参数允许您设置数据的偏移量。

http://cran.r-project.org/web/packages/timeDate/timeDate.pdf

因为您提到了它,所以我想我会展示将单独的列合并在一起的实际代码。当您在单独的列中拥有所需的值时,您可以使用paste它们将它们组合在一起并lubridate::mdy解析它们。

library(lubridate)

col.month <- "Jan"
col.year <- "2012"
col.day <- "23"

date <- mdy(paste(col.month, col.day, col.year, sep = "-"))

Lubridate 是一个很棒的包,这里是官方页面:https ://github.com/hadley/lubridate

这是一组很好的例子:http ://www.r-statistics.com/2012/03/do-more-with-dates-and-times-in-r-with-lubridate-1-1-0 /

于 2012-11-01T12:13:42.650 回答