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

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

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

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

【问题讨论】:

    标签: r date time-series raster


    【解决方案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)
      }
      

      【讨论】:

        猜你喜欢
        • 2014-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        相关资源
        最近更新 更多