誰がこんな関数つかうんだよのコーナー!
職種、就業上の地位(無職/学生を含む)、企業規模、性別、既婚未婚を分岐条件にした、比較的複雑なコーディングを行うR関数。
たとえば以下の様なコーディング・ルール。
職種 | 就業上の地位 | 企業規模 | 性別 | 配偶者の有無 | |
---|---|---|---|---|---|
経営管理 | 経営者役員 | 30人以上 | |||
自営・家族従業 | 経営者役員 | 29人以下 | |||
経営管理 | 管理 | 30人以上 | |||
正規ホワイト | 専門 | 正規雇用 | |||
正規ホワイト | 事務 | 正規雇用 | |||
正規ホワイト | 販売 | 正規雇用 | |||
正規ブルー | ブルー | 正規雇用 | |||
自営・家族従業 | 自営業主 | ||||
自営・家族従業 | 家族従業者 | ||||
非正規 | 非正規 | 男性 | |||
非正規 | 非正規 | 女性 | なし | ||
無職 | 無職 | 男性 | |||
無職 | 無職 | 女性 | なし | ||
主婦(専業/兼業) | 無職 | 女性 | あり | ||
主婦(専業/兼業) | 非正規雇用 | 女性 | あり | ||
学生 | 学生 |
#個々のコーディングルールごとに ifelse()関数でベクトル作成 ky1 <- ifelse(empsta=="経営者・役員"&as.numeric(csize) >=2 ,"経営・管理","") ky2 <- ifelse(jobtype=="管理"&as.numeric(csize) >=2 ,"経営・管理","") sw <- ifelse(empsta=="フルタイム雇用者(常時雇用者)" & (jobtype=="専門"|jobtype=="事務"|jobtype=="販売サービス") ,"正規ホワイト","") sb <- ifelse(empsta=="フルタイム雇用者(常時雇用者)" & (jobtype=="熟練"|jobtype=="半熟練"|jobtype=="非熟練"|jobtype=="農林") ,"正規ブルー","") jk1 <- ifelse(empsta=="自営業主"|empsta=="家族従業者" ,"自営・家族従業","") jk2 <- ifelse( (jobtype=="管理"|empsta=="経営者・役員")&csize=="1〜29人(自営・小企業)" ,"自営・家族従業","") irm <- ifelse(empsta=="パート・アルバイト・臨時雇用者・嘱託" & sex=="男性" ,"非正規","") irf <- ifelse(empsta=="パート・アルバイト・臨時雇用者・嘱託" & sex=="女性"& (marital=="離別・死別"|marital=="未婚") ,"非正規","") unm <- ifelse(empsta=="無職" & sex=="男性" ,"無職","") unf <- ifelse(empsta=="無職" & sex=="女性"&(marital=="離別・死別"|marital=="未婚") ,"無職","") shf <- ifelse( (empsta=="無職"|empsta=="パート・アルバイト・臨時雇用者・嘱託") & sex=="女性" & marital=="配偶者がいる" ,"主婦","") gks <- ifelse(empsta=="学生","学生","") #上の各ベクターを統合 hoge <- cbind(ky1,ky2,sw,sb,jk1,jk2,irm,irf,unm,unf,shf,gks) yyy <- NULL for(i in 1:nrow(hoge)){ yy <- replace(hoge[i,],which(is.na(hoge[i,])),"") yyy[i] <- paste(yy,collapse="") } # 多数の""が出てしまうがしょうがない #イレギュラーなものを修正(例) #実際の出力結果をみながら調整してください yyy <- ifelse(yyy=="経営・管理経営・管理","経営・管理",yyy) yyy <- ifelse(yyy=="経営・管理非正規","非正規",yyy) yyy <- ifelse(yyy=="自営・家族従業自営・家族従業","自営・家族従業",yyy) yyy <- ifelse(yyy=="",NA,yyy) #代入 lifestyle <- yyy