行列方向にダミー変数を作成するのに便利なパッケージの紹介です。
パッケージバージョンは1.6.3。windows 11のR version 4.1.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール
install.packages("fastDummies")
コマンドの紹介
詳細はコマンド、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("fastDummies")
###データ例の作成#####
set.seed(1234)
n <- 4
TestData <- data.frame(Number = 1:n,
FactorNum = factor(1:n),
ID = paste0("ID", 1:n),
Group = sample(paste0("Group", 1:3),
n, replace = TRUE))
########
#数値以外の全変数の組み合わせでダミー変数を列側に作成:dummy_rowsコマンド
#データを指定:.dataオプション
#対象列を指定:select_columnsオプション,数値は対象外
#数値または対象列外に埋める値:dummy_valueオプション,初期値:NA
dummy_rows(.data = TestData, select_columns = c("ID", "Group"),
dummy_value = "Dummy")
Number FactorNum ID Group
1 1 1 ID1 Group2
2 2 2 ID2 Group2
3 3 3 ID3 Group1
4 4 4 ID4 Group3
5 Dummy Dummy ID1 Group1
6 Dummy Dummy ID2 Group1
7 Dummy Dummy ID4 Group1
8 Dummy Dummy ID3 Group2
9 Dummy Dummy ID4 Group2
10 Dummy Dummy ID1 Group3
11 Dummy Dummy ID2 Group3
12 Dummy Dummy ID3 Group3
#ダミー変数を行側に作成:dummy_colsコマンド
#列に含まれる初めの変数を除外:remove_first_dummyオプション
dummy_cols(.data = TestData, select_columns = c("ID", "Group"),
remove_first_dummy = FALSE)
Number FactorNum ID Group ID_ID1 ID_ID2 ID_ID3 ID_ID4 Group_Group1
1 1 1 ID1 Group2 1 0 0 0 0
2 2 2 ID2 Group2 0 1 0 0 0
3 3 3 ID3 Group1 0 0 1 0 1
4 4 4 ID4 Group3 0 0 0 1 0
Group_Group2 Group_Group3
1 1 0
2 1 0
3 0 0
4 0 1
少しでも、あなたの解析が楽になりますように!!