Creating a single timestamp from separate DAY OF YEAR, Year



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

  1. 年(例如2012年)
  2. 一年中的一天(例如,在leap年份代表17年9月17日)
  3. hrs:分钟(例如1610)

有什么方法可以合并三列以在R中创建一个时间戳?我对R如何处理一年中的变量并不熟悉。

感谢您对此的任何帮助!

看起来timeDate软件包可以处理Gregorian的时间范围。我没有亲自使用它,但看起来很简单。某些方法中有一个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-dates-and-nimes-indimes-in-r-with-with-lubridate-1--1-0/

您应该使用ISOdatetime走得很远。此功能将yeardayhourminute的向量作为输入,并输出代表时间的POSIXct对象。您只需要将第三列分为两个单独的hour minute列,就可以使用该函数。

最新更新