我有几个气象变量的时间序列数据集。时间数据记录在三个单独的列中:
有没有办法可以合并三列来在R中创建一个时间戳?我不太熟悉R如何处理Day of Year变量。
感谢您对此提供任何帮助!
答案 0 :(得分:3)
你应该使用ISOdatetime
。此函数将year
,day
,hour
和minute
的向量作为输入,并输出表示时间的POSIXct
对象。您只需将第三列拆分为两个单独的hour
minute
列,即可使用该功能。
答案 1 :(得分: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/