Rで解析:ダミー変数の作成に大変便利です「makedummies」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

カテゴリデータを含むデータセット、例えばアンケートなど「頻度・率」に注目するデータや重回帰分析などに適合するデータ作成に大変便利なパッケージの紹介です。ダミー変数が簡単に作成できます。

パッケージ内容を確認するまで、「カテゴリデータを数量化するパッケージは既に存在しているし、最悪コマンド処理で可能では」と疑問を持ちました。でも、何事も体験するまで判断してはいけません。「makedummies」パッケージ、非常に便利です。

パッケージ管理者のToshiaki Araさんのホームページで記述されているようパッケージの開発には、群馬大学の青木先生が公開されているmake.dummyを参考にされたようです。

青木先生のmake.dummy
http://aoki2.si.gunma-u.ac.jp/R/qt3.html

Toshiaki Araさんのホームページ
http://arat.xyz/wordpress/?p=160

パッケージバージョンは1.2.1。実行コマンドはwindows 11のR version 4.1.2で動作を確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
#参加者3名,質問が3つ,選択内容が4つの回答で構成されるアンケートデータを想定
#回答データをfactor classにするのがポイント
TestData <- data.frame(ID = rep(1:3, times = 3),
                       Question = rep(1:3, each = 3),
                       Result = factor(sample(1:4, 9, replace = TRUE)))

#構成を確認
str(TestData)
'data.frame':	9 obs. of  3 variables:
$ ID      : int  1 2 3 1 2 3 1 2 3
$ Question: int  1 1 1 2 2 2 3 3 3
$ Result  : Factor w/ 3 levels "2","3","4": 1 2 1 2 3 1 3 1 1

#内容を確認
TestData
ID Question Result
1  1        1      2
2  2        1      3
3  3        1      2
4  1        2      3
5  2        2      4
6  3        2      2
7  1        3      4
8  2        3      2
9  3        3      2
########

#データからダミー変数を作成:makedummiesコマンド
#因子の最初のlevelを含む除外:basal_levelオプション;TRUE:含む,FALSE:除外
#FALSEで重回帰分析などに適合するデータ作成に便利です
makedummies(TestData, basal_level = TRUE)
  ID Question Result_2 Result_3 Result_4
1  1        1        1        0        0
2  2        1        0        1        0
3  3        1        1        0        0
4  1        2        0        1        0
5  2        2        0        0        1
6  3        2        1        0        0
7  1        3        0        0        1
8  2        3        1        0        0
9  3        3        1        0        0

#処理する列のデータを表示:colオプション
makedummies(TestData, basal_level = TRUE, col = "Result")
  Result_2 Result_3 Result_4
1        1        0        0
2        0        1        0
3        1        0        0
4        0        1        0
5        0        0        1
6        1        0        0
7        0        0        1
8        1        0        0
9        1        0        0

#factor classをfactor classで処理しない:numericオプション
#例ではオリジナルのデータが表示されます
makedummies(TestData, basal_level = TRUE, numeric = "Result")
  ID Question Result
1  1        1      1
2  2        1      2
3  3        1      1
4  1        2      2
5  2        2      3
6  3        2      1
7  1        3      3
8  2        3      1
9  3        3      1

#例えばデータ例にfactor classデータを追加して処理
TestData2 <- cbind(TestData, Result2 = TestData[, 3])
makedummies(TestData2, basal_level = TRUE, numeric = "Result")
  ID Question Result Result2_2 Result2_3 Result2_4
1  1        1      1         1         0         0
2  2        1      2         0         1         0
3  3        1      1         1         0         0
4  1        2      2         0         1         0
5  2        2      3         0         0         1
6  3        2      1         1         0         0
7  1        3      3         0         0         1
8  2        3      1         1         0         0
9  3        3      1         1         0         0

少しでも、あなたの解析が楽になりますように!!

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