時系列の欠損値を補間する「imputeTS」パッケージです。工夫次第では時系列以外にも活用できそうなので紹介します。Rのコマンドで欠損値を操作する方が楽ですが、まずは本パッケージを試してみるのも手かもしれません。
パッケージのバージョンは3.2。実行コマンドはwindows 11のR version 4.1.3で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("imputeTS")
実行コマンドの紹介
詳細はコメント、パッケージヘルプを確認してください。
#ライブラリの読み込み library("imputeTS") #テストデータ #tsコマンドで時系列データに変換しています TestData <- ts(c(2,3,4,5,6,NA,7,8)) TestData Time Series: Start = 1 End = 8 Frequency = 1 [1] 2 3 4 5 6 NA 7 8 #linearもしくはsplineで欠損値を補間:na_interpolationコマンド #オプションで指定 na_interpolation(TestData, option = "linear") Time Series: Start = 1 End = 8 Frequency = 1 [1] 2.0 3.0 4.0 5.0 6.0 6.5 7.0 8.0 #欠損値の前または後の値で欠損値を補間:na_locfコマンド #locf:前の値で補間,nocb:後ろの値で補間 na_locf(TestData, option = "locf") Time Series: Start = 1 End = 8 Frequency = 1 [1] 2 3 4 5 6 6 7 8 #平均,中央値,最頻値で欠損値を補間:na_meanコマンド #mean:平均,median:中央値,最頻値:median na_mean(TestData, option = "mean") Time Series: Start = 1 End = 8 Frequency = 1 [1] 2 3 4 5 6 5 7 8 #ランダムに欠損値を補間:na_randomコマンド #upper_bound:下限値,upper_bound:上限値 na_random(TestData, lower_bound = 100, upper_bound = 1000) Time Series: Start = 1 End = 8 Frequency = 1 [1] 2.0000 3.0000 4.0000 5.0000 6.0000 911.4419 7.0000 8.0000 #欠損値の除去:na_removeコマンド na_remove(TestData) Time Series: Start = 1 End = 7 Frequency = 1 [1] 2 3 4 5 6 7 8 #欠損値への代入:na_replaceコマンド na_replace(TestData, fill = 99999) Time Series: Start = 1 End = 8 Frequency = 1 [1] 2 3 4 5 6 99999 7 8
少しでも、あなたの解析が楽になりますように!!