探せばきっとどこかにあるんでしょうが、ちょっと見つからなかったので自分でスクリプトを書きました。
職業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)