【R】ダミー変数を一度に生成する関数
探せばあるんだろうけど、データフレームを引数に複数列を一度にダミー変数化する関数を作りました。
よければ使ってください。
使い方:
(0) {dummies} パッケージをインストールする
(1) 引数 data にダミー変数化したいデータフレームを入れる
(2) 回帰等で多重共線性を避けるために1列除きたい場合は is.drop = TRUE とする
convDummies <- function(data, is.drop = FALSE){ library(dummies) N <- ncol(data) row_names <- names(data) names_list <- c() new_data <- rep(NA, nrow(data)) for(n in 1:N){ unique_value <- sort(unique(data[,n])) dummied_data <- dummy(data[,n]) if(is.drop == TRUE){ new_data <- cbind(new_data, dummied_data[,-ncol(dummied_data)]) names_list <- c(names_list, paste(row_names[n], unique_value, sep = ".")[-ncol(dummied_data)]) } else { new_data <- cbind(new_data, dummied_data) names_list <- c(names_list, paste(row_names[n], unique_value, sep = ".")) } } new_data <- as.data.frame(new_data) names(new_data) <- c("temp", names_list) return(new_data[,-1]) }