Rで解析:欠損値の補完操作が楽々です。「ForImp」パッケージ

Rの解析に役に立つ記事

データへ欠損値をランダムに代入、欠損値にデータの中央値や平均値を代入、そしてデータの欠損値情報を表示するコマンドが収録されたパッケージの紹介です。

バージョンは1.0.3。実行コマンドはR version 3.2.2で確認しています。


スポンサーリンク
スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("ForImp")



実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

#パッケージの読み込み
library("ForImp")

###データ例の作成####
TestData <- matrix(1:50, 10, 5)

#データ内容の確認
TestData
     &#91;,1&#93; &#91;,2&#93; &#91;,3&#93; &#91;,4&#93; &#91;,5&#93;
&#91;1,&#93;    1   11   21   31   41
&#91;2,&#93;    2   12   22   32   42
&#91;3,&#93;    3   13   23   33   43
&#91;4,&#93;    4   14   24   34   44
&#91;5,&#93;    5   15   25   35   45
&#91;6,&#93;    6   16   26   36   46
&#91;7,&#93;    7   17   27   37   47
&#91;8,&#93;    8   18   28   38   48
&#91;9,&#93;    9   19   29   39   49
&#91;10,&#93;   10   20   30   40   50
########

#ランダムに欠損値を代入:missingmat2コマンド
#代入するNA値の数:missingオプション
MissData <- missingmat2(TestData, missing = 10)
     &#91;,1&#93; &#91;,2&#93; &#91;,3&#93; &#91;,4&#93; &#91;,5&#93;
&#91;1,&#93;    1   11   21   NA   41
&#91;2,&#93;    2   12   22   32   NA
&#91;3,&#93;    3   NA   23   33   43
&#91;4,&#93;    4   14   NA   34   44
&#91;5,&#93;    5   15   NA   35   45
&#91;6,&#93;    6   16   26   36   NA
&#91;7,&#93;    7   17   NA   37   47
&#91;8,&#93;   NA   18   28   38   48
&#91;9,&#93;    9   19   29   NA   49
&#91;10,&#93;   10   20   NA   40   50

#データの欠損値情報を表示:missingnessコマンド
missingness(MissData)
$number_of_missing_values
&#91;1&#93; 10
$missing_values_per_unit
1 
10 
$missing_values_per_variable
&#91;1&#93; 1 1 4 2 2

#NA値に各列データの中央値を代入:medianimpコマンド
medianimp(MissData)
   &#91;,1&#93; &#91;,2&#93; &#91;,3&#93; &#91;,4&#93; &#91;,5&#93;
&#91;1,&#93;    1   11   21   35   41
&#91;2,&#93;    2   12   22   32   45
&#91;3,&#93;    3   16   23   33   43
&#91;4,&#93;    4   14   23   34   44
&#91;5,&#93;    5   15   23   35   45
&#91;6,&#93;    6   16   26   36   45
&#91;7,&#93;    7   17   23   37   47
&#91;8,&#93;    5   18   28   38   48
&#91;9,&#93;    9   19   29   35   49
&#91;10,&#93;   10   20   23   40   50
&#91;/code&#93;
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-format="fluid"
     data-ad-layout="in-article"
     data-ad-client="ca-pub-2892542339637017"
     data-ad-slot="4852897046"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
[code language="R"]
#NA値に各列データの平均値を代入:medianimpコマンド
meanimp(MissData)
     [,1]     [,2]     [,3]   [,4]   [,5]
[1,]  1.000000 11.00000 21.00000 35.625 41.000
[2,]  2.000000 12.00000 22.00000 32.000 45.875
[3,]  3.000000 15.77778 23.00000 33.000 43.000
[4,]  4.000000 14.00000 24.83333 34.000 44.000
[5,]  5.000000 15.00000 24.83333 35.000 45.000
[6,]  6.000000 16.00000 26.00000 36.000 45.875
[7,]  7.000000 17.00000 24.83333 37.000 47.000
[8,]  5.222222 18.00000 28.00000 38.000 48.000
[9,]  9.000000 19.00000 29.00000 35.625 49.000
[10,] 10.000000 20.00000 24.83333 40.000 50.000

#マトリックスを指定した値を代入:transfmatcatコマンド
transfmatcat(TestData, cat = c(2,5))
   [,1] [,2] [,3] [,4] [,5]
[1,]    1    1    1    1    1
[2,]    1    1    1    1    1
[3,]    1    2    1    2    1
[4,]    1    2    1    2    1
[5,]    1    3    1    3    1
[6,]    2    3    2    3    2
[7,]    2    4    2    4    2
[8,]    2    4    2    4    2
[9,]    2    5    2    5    2
[10,]   2    5    2    5    2

少しでも、あなたのウェブや実験の解析が楽になりますように!!

タイトルとURLをコピーしました