簡體   English   中英

如何查找時間序列中的缺失觀測值並填充NA

[英]How to FIND missing observations within a time series and fill with NAs

我有一個10年的時間序列,其中包含日常觀察。 我發現該系列中的某些行(整個行,而不僅僅是觀察值)丟失了,這對於我的用例來說是有問題的。 日期按順序排列,但給定的月份可能從(ymd)2017-10-13開始而不是2017-10-01,因此缺少12個觀測值。 我需要確定這樣的序列中哪些地方有中斷,並插入正確數量的行和正確的日期,以便可以在這些位置使用NA。

我怎樣才能做到這一點?

這是一個類似於我的數據框的可復制示例,其中缺少4018個帶時間戳的觀察結果中的219個:

df <- NULL
df$date <- seq(as.Date("2007/01/01"), as.Date("2017/12/31"), "days")
df$obs <- runif(4018)
df <- as.data.frame(df)
df_missing <- df[sample(1:nrow(df), 3799), ]

head(df_missing)
        date        obs
    1 2007-01-01 0.96428609
    2 2007-01-02 0.04199475
    3 2007-01-03 0.72729484
    4 2007-01-04 0.85591517
    5 2007-01-05 0.07373118
    6 2007-01-06 0.71093604

創建一個包含所有日期的網格g的數據框,並將其與您的數據框合並:

rng <- range(DF$date)
g <- data.frame(date = seq(rng[1], rng[2], "day"))
merge(DF, g, all = TRUE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM