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


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

本パッケージはツイッターで管理者のToshiaki Araさんに紹介を受けました。

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

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


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

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

#パッケージのインストール
install.packages("devtools")
devtools::install_github("toshi-ara/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 "1","3","4": 1 3 3 3 3 3 3 2 1
#内容を確認
TestData
 ID Question Result
1  1        1      1
2  2        1      4
3  3        1      4
4  1        2      4
5  2        2      4
6  3        2      4
7  1        3      4
8  2        3      3
9  3        3      1
########

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

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

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

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

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

スポンサードリンク

おすすめコンテンツ


スポンサードリンク