こにしき(言葉・日本社会・教育)

関西学院大学(2016.04~)の寺沢拓敬のブログです(専門:言語社会学)。

Rで職業変数を、SSM職業8分類に再コード化する

探せばきっとどこかにあるんでしょうが、ちょっと見つからなかったので自分でスクリプトを書きました。

職業800番台のコードには対応していないので、比較的新しいデータを使う場合は、1.職業とのマッチングの部分で適時修正してください。

このスクリプトは、numeric形式(数値形式)の職種変数を変換するものです。したがって、factor形式には対応していません。


SPSSファイルから読み込んだデータをお使いのときは、たとえばlibrary(foreign)パッケージのread.spss()関数で、 引数を use.value.labels=FALSE と指定して下さい。

dat <- read.spss("data.sav"
         ,use.value.labels=FALSE
         ,to.data.frame=TRUE)
2014年7月15日追記

追加コードの職業分類への対応は、JGSS-2009のコードブックを参考にしました。
http://jgss.daishodai.ac.jp/research/codebook/JGSS-2009LCS_Codebook_Published.pdf

## SSMに従った
## 職業8分類


## 1.職業とのマッチング

senmon <- c(      # 専門
  501,502,503,504,505,506,507,508,509,510,511,512,
  513,514,515,516,517,518,519,520,521,522,523,524,525,
  526,527,528,529,530,531,532,533,534,535,536,537,538,
  539,540,541,542,543,544,609,610,615,703)

kanri <- c(        # 管理
  545,546,547,548,549,550,551,552,553,608)

zimu <- c(         # 事務
  554,555,556,557,558,559,560,561,562,563,564,565,586,
  590,593,594,595,596,597,598,616,617,618,619,701)

hanbai <- c(       # 販売
  566,567,568,569,570,571,572,573,574,575,576,577,582,
  583,584,585,587,588,589)

jukuren <- c(      # 熟練
  579,581,623,624,626,628,631,633,635,636,637,638,639,
  640,641,642,643,644,647,651,654,655,656,658,660,661,
  662,663,664,665,666,668,670,671,673,674,675,677,678,
  679,680,681,684,702)

hanjukuren <- c(   # 半熟練
  580,606,607,611,612,613,614,625,627,629,630,632,634,
  645,646,648,649,650,652,653,657,659,667,669,672,676,704
  ,706)            # 2014年7月15日:「706 宅配便」追加

hijukuren <- c(    # 非熟練
  578,591,592,620,621,622,682,683,685,686,687,688)

nourin <- c(       # 農林
  599,600,601,602,603,604,605)

DKNA <- c(         # 分類不能・無回答
  689,705,707,987, 998,999)                 # 2012年1月11日、「987 兵役」追加


# 2.一括再コード

  library(car)   # recode() 関数使用のため

# 例:「Dataset」というデータセットに含まれている
# 「syokugyou」という職業の変数をもとに
# 「JOB8」という8分類の変数を新たに作る


JOB8 <- recode(Dataset$syokugyou, "      
  senmon = '専門';
  kanri  = '管理';
  zimu   = '事務';
  hanbai = '販売';
  jukuren= '熟練';
  hanjukuren= '半熟練';
  hijukuren='非熟練';
  nourin  ='農林';
  DKNA = NA
                       ", as.factor.result=T)



# 3.再コード結果を確認

table(JOB8)