[英]Summarizing intervals of missing data in POSIX time series
我有一个每小时降水量数据的时间序列,我正在尝试通过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")
输出应将一个一小时的时间段,一个两个小时的时间段和一个三个小时的时间段识别为丢失数据。 谢谢!
使用rle
( 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.