R で時系列データの線形補間を検索するとna.approx()
、zoo
パッケージから使用する推奨事項がよく見つかりました。
ただし、不規則な時系列では問題が発生しました。これは、値に関連付けられているタイムスタンプを考慮せずに、補間された値がギャップの数に均等に分散されるためです。
を使用して回避策を見つけましたが、理想的にはパッケージファミリーの機能を持つオブジェクトにapproxfun()
基づいた、よりクリーンなソリューションがあるかどうか疑問に思いますか?tsibble
tidyverts
以前の回答は、ギャップを埋めることによって不規則な日付グリッドを通常のグリッドに拡張することに依存していました。ただし、これは、補間時に日中を考慮に入れる必要がある場合に問題を引き起こします。
以下は、日付のみではなく POSIXct タイムスタンプを使用した (改訂された) 最小限の例です。
library(tidyverse)
library(zoo)
df <- tibble(date = as.POSIXct(c("2000-01-01 00:00", "2000-01-02 02:00", "2000-01-05 00:00")),
value = c(1,NA,2))
df %>%
mutate(value_int_wrong = na.approx(value),
value_int_correct = approxfun(date, value)(date))
# A tibble: 3 x 4
date value value_int_wrong value_int_correct
<dttm> <dbl> <dbl> <dbl>
1 2000-01-01 00:00:00 1 1 1
2 2000-01-02 02:00:00 NA 1.5 1.27
3 2000-01-05 00:00:00 2 2 2
これに(効率的に)対処する方法はありますか?ご協力ありがとうございました!