R:如何从时间序列中提取日期

Posted

技术标签:

【中文标题】R:如何从时间序列中提取日期【英文标题】:R: How to extract dates from a time series 【发布时间】:2015-05-25 22:58:35 【问题描述】:

如何从时间序列中提取日期? 这是一个时间序列:

x = seq (1, 768)
myts <- ts(x, start=1982, frequency=24)

最初我需要为rts 函数创建一个包含日期/时间数据的向量,观测从 1982 年开始,每月进行 2 次测量,直到 2013 年。

【问题讨论】:

【参考方案1】:

试试:

time(myts)

或许:

library(zoo)
as.yearmon(time(myts))

【讨论】:

如果频率 = 12 则可以使用 zoo::as.Date。 x = seq (1, 768); myts 【参考方案2】:

如果您需要POSIX* 对象——这在处理半月数据时可能不合适,但在处理更高的时间分辨率时可能会派上用场——你也可以使用 中的date_decimal润滑

library(lubridate)
mts <- as.numeric(time(myts))

## 'POSIXct, POSIXt' object
tms <- date_decimal(mts)

【讨论】:

【参考方案3】:

您可以使用以下功能。输入是 r 中的时间序列。并且输出是一个包含从开始时间到结束时间的所有时间的列表数组。

借助列表,您可以非常方便地使用window()函数截断时间序列。

getTStime <- function(ats)
  start <- start(ats)
  end <- end(ats)
  time <- list()
  time[[1]] <- start
  m <- 2
  while(!(identical(start, end)))
    start[2] <- start[2] + 1
    if (start[2]==13)
      start[1] <- start[1] + 1
      start[2] <- 1
    
    time[[m]] <- start
    m <- m + 1
  
  return(time)

【讨论】:

以上是关于R:如何从时间序列中提取日期的主要内容,如果未能解决你的问题,请参考以下文章

R从日期时间中提取日期

试图从时间戳 R 中提取日期

从字符串中提取数字作为R中的数字或日期

从 r 中的日期中仅提取季度

R从日期时间开始提取日期

从列中提取日期并在 R 中缺少年份时添加年份