crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

一般職国家公務員在職状況統計表の分析2 - R言語のdplyrパッケージを利用してデータ操作の練習その2

 

www.crosshyou.info

 の続きです。今回も引き続き、dplyrパッケージを利用してデータ操作の練習をしてみます。

まずは、CSVファイルにあるデータをread.csv関数で呼び出し、summary関数で基本統計量を算出します。

f:id:cross_hyou:20181106115553j:plain

tidyverseパッケージを呼び出します。

f:id:cross_hyou:20181106115713j:plain

前回のブログでは、summarize関数、filter関数、arrange関数、select関数を使ってみましたので、今回はmutate関数を使ってみたいと思います。

mutate関数は既存の列に関数を適用して新しい列を追加します。

まずは「行政職第1」と「行政職第2」を合計して「行政職合計」を追加してみましょう。

f:id:cross_hyou:20181106120706j:plain

data_sub1 という作業用のデータフレームを作成し、select関数で作業に必要な「行政職第1」と「行政職第2」だけをこのdata_sub1に格納し、mutate関数で「行政職合計」という列を作成し、head関数ではじめの6行を表示しました。

%>%はパイプと呼びます。「そして」というような意味で使うらしいです。まだ詳しく勉強していないのでわかりません。

このdata_sub1のデータフレームでは、1行目が男性で2行目が女性の人数でした。この男性と女性を合計した値を作成できないでしょうか?lead関数もしくはlag関数でチャレンジしてみます。

f:id:cross_hyou:20181106121733j:plain

2行目、4行目、6行目、8行目が男女合計ですね。奇数の列はいらないんですよね。。

f:id:cross_hyou:20181106122150j:plain

無理やりですが、それぞれの値をNAに置き換えました。

男女合計ができましたから、「女性比率」を作成しましょう。

f:id:cross_hyou:20181106122758j:plain

round関数を使って小数点以下2桁にしていますが、女性比率は19.71%、18.72%、19.37%、20.07%と年々上昇していますね。平成27年の17.91%と30年の20.07%が統計的に有意な差があるのかどうか検定してみます。

クロス表を作成します。matrix関数で直接値を入力して作成します。

f:id:cross_hyou:20181106123616j:plain

prop.table関数で比率を計算します。

f:id:cross_hyou:20181106123917j:plain

それでは、この男女の比率の違いが統計的に有意なものかどうかカイ自乗検定で検定します。

f:id:cross_hyou:20181106124228j:plain

p-value < 2.2e-16 < 0.05 ですから男女比の違いは統計的に有意だということですね。国家公務員の行政職は意識的に女性を増やそうとしているのかな?