時系列の欠損値を補間する「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
少しでも、あなたの解析が楽になりますように!!