Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

犯罪統計分析4 - 検挙率の良くなった犯罪・悪くなった犯罪(subset関数、order関数)

今回は、犯罪統計のデータを使って、検挙率の良くなった犯罪と悪くなった犯罪を調べてみたいと思います。前回の分析で、平成30年(1~6月)は、平成29年(1~6月)よりも全体では検挙率が良くなったことがわかりました。

まずは、csvファイルにあるデータを、read.csv関数で読込み、head関数、summary関数でみてみましょう。

f:id:cross_hyou:20180723120705j:plain

まずは、平成29年だけのデータフレーム、平成30年だけのデータフレームを作ります。

subset関数で作成します。

f:id:cross_hyou:20180723121139j:plain

summary関数の結果の年の結果を見ると、すべての値が29になっていますので、平成29年だけだとわかります。

同じように平成30年だけのデータフレームを作ります。

f:id:cross_hyou:20180723121533j:plain

それでは、検挙率を計算しましょう。

平成29年は、crime29$検挙件数 / crime29$認知件数 * 100 という式ですね。

同じように平成30年は、crime30$検挙件数 / crime30$検挙件数 * 100 です。

f:id:cross_hyou:20180723122109j:plain

round関数で小数点以下2桁までの表示にしています。

この二つの差が検挙率の改善・悪化になります。

f:id:cross_hyou:20180723122433j:plain

このままでは、どの値がどの犯罪に対応しているかわからないので、新しいデータフレームにこのデータと犯罪の種類のデータを入れます。

f:id:cross_hyou:20180723122820j:plain

データフレームを作成するには、data.frame関数です。

列の名前は、crime29.大分類、crime30.中分類、検挙率改善悪化と少し冗長なので、colnames関数で短く名前を付け直しましょう。

f:id:cross_hyou:20180723123309j:plain

それでは、検挙率がよくなったのはどの犯罪か調べてみましょう。order関数で並び替えればいいですね。

f:id:cross_hyou:20180723123644j:plain

head関数に引数で10をつけているので、初めから10行目が表示されます。背任、賭博、偽造、侵入盗、恐喝などが検挙率がよくなっています。

検挙率が悪くなったのはこちらです。

f:id:cross_hyou:20180723124132j:plain

凶器準備集合、汚職、略取誘拐・人身売買、横領、殺人などの検挙率が悪くなっています。

殺人の検挙率が悪くなっているのは心配ですね。

最後に検挙率の変化のヒストグラムを載せておきます。

hist関数ですね。

f:id:cross_hyou:20180723124529j:plain

前回の分析で、犯罪全体では検挙率が高くなったとありましたが、犯罪の種類でも検挙率の高くなった犯罪が多いことがヒストグラムからもわかります。