【データ前処理】標準化死亡比のデータの可視化に向けて:R言語での政府統計の前処理の例
標準化死亡比(SMR:Standardized Mortality Ratio)という指標があり、死因別に各市区町村が全国を100とした場合に、その市区町村での死亡数が多い傾向にあるのか、少ない傾向にあるのかを知ることができます。SMRは、年齢階級のデータを利用して算出した期待死亡者数と実際の死亡者数の比です。期待死亡者数は基準となる集団での死亡率を用いて計算されます。例えば、全国のデータを基準値とすると、全国の40~44歳の人口に対して、ある死因による全国の40~44歳の死亡者数がどれくらいの比率なのかを計算します。その比率を各市区町村の40~44歳の人口に掛け合わせることで、各市区町村の40~44歳における期待死亡者数が得られます。45~49歳、50~54歳・・・の各年齢層でも同様に期待死亡者数を算出し、ある死因による各市区町村の期待死亡者総数と各市区町村の実際の死亡者総数の比がSMRということになります。今回、政府の公開データをデータポータルの地図で可視化しようと思います。政府の公開データをデータポータルで扱える形に整えるためには、「データの前処理」「データのクレンジング」といった処理が必要です。政府の公開データの表は、人が見て見やすい形の表の形式になっていますが、そのデータの形式をBIツールや統計解析ソフトに適したデータ形式に変換する必要があります。その処理のことを「前処理」と言います。ある意味で「データの前処理」は不毛な作業ですが、データの利活用には不可欠な作業です。「不毛な作業」というのは、前処理が不要なデータ形式で公開されていれば、全く必要のない作業だからです。↓こちらのページでR言語による政府統計のデータ前処理の方法が紹介されています。「まず、列名情報だけを整える」というアプローチはわかりやすく、有効であると思いました。https://maeshori-r.connpass.com/event/219249/今回は、上記の「まず、列名情報だけを整える」という方法とR言語のスクリプトをそのままマネさせていただき、政府の公開データ「標準化死亡比,三大死因・性・都道府県・保健所・市区町村別」の表の前処理をしてみました。データポータルで地図を作成するのが目標ですが、とりあえず、表の列名の整備までがほぼできた感じです。前処理をした列名でデータを読み込むことができました。この程度の処理は、もちろんExcelのシート上で手作業で行う場合が多いと思いますが、R言語のスクリプトで処理できるようにしておけば、より複雑な表の場合や同じ処理を繰り返す必要がある場合に役立ちます。また、この方法であれば、元のデータファイル自体を直接変更せずに処理することが可能であるため、間違ってデータの入っているセルを消したり、上書きしたりといった手作業でのケアレスミスを防ぐことができます。※追記:文字列中の空白が削除できていませんでしたので、下記のスクリプトに修正しました。colname <- str_replace_all(colname," ","")【R言語による前処理の例】df_temp_smr <- read_excel("hyo5_h2529.xlsx",col_names = FALSE,skip = 5,n_max = 3) df_temp_smrdf_temp_smr0 <- df_temp_smr %>% fill(everything()) temp_colname <- tibble(a1=as.character(df_temp_smr0[1,]),a2=as.character(df_temp_smr0[2,]),a3=as.character(df_temp_smr0[3,]),) %>% mutate(SMR = "SMR") %>% select(SMR,everything()) colname <- fill(temp_colname,everything()) %>% unite(col = "name",everything()) %>% .$namecolname <- str_replace_all(colname," ","")colname <- c("地域",colname)df_smr <- read_excel("hyo5_h2529.xlsx",col_names = colname,skip = 8) view(df_smr)=============================<以下は、出典や参考情報源>下記のURLに市区町村別のSMRの公開データがあります。「標準化死亡比,三大死因・性・都道府県・保健所・市区町村別」https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00450013&tstat=000001143831&cycle=7&stat_infid=000031976400&cycle_facet=cycle&tclass1val=0下記のURLのページでは、Pythonによるデータ処理後、データポータルで市区町村別のSMRについて可視化した例が紹介されています。https://zenn.dev/kaorumori/articles/403ea0f2414b70