我有几个气象变量的时间序列数据集。时间数据记录在三个单独的列中:
- 年份(例如 2012 年)
- 一年中的某一天(例如 261 表示闰年的 9 月 17 日)
- 小时:分钟(例如 1610)
有没有办法可以合并三列以在 R 中创建单个时间戳?我不太熟悉 R 如何处理 Day of Year 变量。
感谢您对此的任何帮助!
我有几个气象变量的时间序列数据集。时间数据记录在三个单独的列中:
有没有办法可以合并三列以在 R 中创建单个时间戳?我不太熟悉 R 如何处理 Day of Year 变量。
感谢您对此的任何帮助!
您应该使用ISOdatetime
. 此函数将 、 、 和 的向量year
作为day
输入hour
,minute
并输出一个POSIXct
表示时间的对象。您只需将第三列拆分为两个单独的hour
minute
列,即可使用该功能。
看起来这个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 /