【问题标题】:Summarizing intervals of missing data in POSIX time series总结 POSIX 时间序列中缺失数据的间隔
【发布时间】:2013-11-27 23:50:11
【问题描述】:

我有一个时间序列的每小时降水数据,我正试图通过 QA/QC 例程运行这些数据。我想做的一件事是创建一个带有缺失数据的间隔计数的直方图,按数据缺失的时间长度分组,即有多少个周期缺少一小时的数据,有多少个连续两个小时,三个有多少,等等......我可能可以用一些嵌套循环来做到这一点,但想知道是否有更好的方法。

时间序列是连续的(表示所有小时)。 datetime 为 POSIXct,数据为数字,缺失数据为 NA。可以用这个创建一个简短的示例:

precip <- structure(list(datetime = structure(c(1114905600, 1114909200, 
1114912800, 1114916400, 1114920000, 1114923600, 1114927200, 1114930800, 
1114934400, 1114938000, 1114941600, 1114945200, 1114948800), class = c("POSIXct", 
"POSIXt"), tzone = "UTC"), precip = c(1.1, NA, 2, 0, NA, NA, 
NA, 0, 0, NA, NA, 0.5, 0.3)), .Names = c("datetime", "precip"
), row.names = c(NA, -13L), class = "data.frame")

输出应将一个一小时时段、一个两小时时段和一个三小时时段识别为缺失数据。 谢谢!

【问题讨论】:

    标签: r time-series posixct


    【解决方案1】:

    使用rle(运行长度编码):

    R> rle_res <- as.data.frame(unclass(rle(is.na(precip$precip))))
    R> rle_na <- subset(rle_res, values==TRUE)  # filter NA values
    R> table(rle_na$length)
    1 2 3 
    1 1 1 
    

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 1970-01-01
      • 2022-01-06
      • 2020-03-19
      • 2016-11-21
      • 2021-03-23
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      相关资源
      最近更新 更多