【R】アンケート調査のリコード:二択からダミー変数を作成する自作関数q_dum2()

社会調査などのアンケート調査の分析では、リコードという作業が欠かせません。そのための自作パッケージq_recodeから、二択からダミー変数を作成する自作関数q_dum2()の説明です。


選択肢を逆転させる自作関数r_rev()についてはこちら:
chiikiokoshi.hatenablog.com



質問紙調査のリコードでは、何度も何度も似たような処理をします。統計環境Rでリコードの作業を効率化するため、自作関数をパッケージqrecodeにまとめて、公開しました(現在は選択肢を逆転させる関数q_rev()と、「1:男性 2:女性」を「1:男性 0:女性」あるいは「1:女性 2:男性」にリコードする関数q_dum2()のみが実装されていますが、順次バージョンアップしていく予定です)。

パッケージqrecodeのソースコード
github.com


自分がリコードをしていくさい、「1:はい 2:いいえ」という選択肢1と2を「1:はい 0:いいえ」にしたり、「1:男性 2:女性」を「1:男性 0:女性」とする男性ダミー、あるいは逆に「1:女性 0:男性」とする女性ダミーを作成するというように、選択肢1と2を0と1(あるいは1と0)に変換する作業が頻繁にありました。Rでダミー変数を作成する関数はすでにありますが、この1と2を0と1(あるいは1と0)に変換することに特化した関数を作成しました。それがq_dum2()です。


使い方は次のとおりです。

例として、データフレームdfに含まれるQ1性別の選択肢「1:男性 2:女性」から
「1:男性 0:女性」とする男性ダミー、
「0:男性 1:女性」とする女性ダミーを作成します。


まず、パッケージqrecodeをインストールして読み込みます。

#パッケージqrecodeのインストールはこちら:
library(devtools)
remotes::install_github("https://github.com/hayatokatagiri/qrecode.git")
library(qrecode) #パッケージの読み込み


その上で、選択肢1、2を1、0にしたい場合は、

df$男性ダミー <- q_dum2(df$Q1)

と書きます。

すると、次のように出力されます。男性の1は1のまま、女性の2は0に変換されています。

[1] "Crosstable of the old variable"
old
   1    2 
1459 1785 
[1] "Crosstable of the new variable"
new
   0    1 
1785 1459 

あるいは、逆に選択肢1、2を0、1にしたい場合は、

df$女性ダミー <- q_dum2(df$Q1, rev = T)

とrev = Tと指定すれば作成できます。出力は次のようになります。先ほどとは逆の結果です。

[1] "Crosstable of the old variable"
old
   1    2 
1459 1785 
[1] "Crosstable of the new variable"
new
   0    1 
1459 1785 

みなさまのリコード作業のお役に立てれば幸いです。