行列方向にダミー変数を作成するのに便利なパッケージの紹介です。
パッケージバージョンは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
少しでも、あなたの解析が楽になりますように!!