Ma.01. SSDSEを活用

SSDSEは使いやすいようで使いにくい。
どうデータセットの中で何かを分析する場合には、扱いやすいが、どの変数もあまり関心を集めない。
変数名が丁寧な日本語なので、一つづつ真面目にRenameしないといけない。せめてローマ字ならば、、、

SSDSEの活用に慣れているわけではないが、使い始めるには、以下のコードを叩く必要があるだろう。

SSDSEの前処理(SSDSE-Eの場合)

#SSDSE-Eを登用
ssdse <- read_csv("Data/SSDSE-E-2025.csv", 
                  locale = locale(encoding = "CP932"), 
                  skip = 2)

#日本語名の変数は扱いにくいためRenameする
#renameは先に新しい名前を指定する
ssdse <- ssdse %>% 
  rename(area_code = `地域コード`)

#R0000(全国平均)は分析の邪魔なのでFilterする
ssdse <- ssdse %>% 
  dplyr::filter(area_code != "R00000")

#R****という地域コードは扱いづらいため、数値データとして都道府県コードを取り出す。
#ここでは文字列の2文字目から3文字めを取り出しまして、Tiikiという変数にしています。
ssdse <- ssdse %>% 
  mutate(tiiki = as.numeric(str_sub(area_code, 2, 3)))

たとえば、SSDSEのデータセットに自殺率を入れたいとします。
その場合は、e-statから自殺率を探してきてください。「I910803_自殺率(人口10万対)」I(アイ)のカテゴリみたいです。
それをダウンロードしたら以下のように、読み込み、使える形にします。(面倒ですが、これ以外のやり方を知りません)

別のデータをDLして結合の準備をする

jisatu <- read_csv("Data/jisatu.csv", 
                   col_types = "__d__d",#Skip,Skip,Numeric,Skip,Numericで読み取る。不要な列を入れ込まない。
                   locale = locale(encoding = "CP932"), 
                   skip = 1)
names(jisatu) #難解な変数名が多いので、コピーするため

jisatu <- jisatu %>% 
  mutate(tiiki = as.numeric(`地域 コード`) * 0.001) #僕はこんな感じで地域コードとは別に県のコード(tiiki)を作成します

jisatu <- jisatu %>% 
  rename(jisatu = 'I910803_自殺率(人口10万対)【‐】')  #あまりに扱いにくいので、変数名を修正します。


こうして、tiikiという共通の都道府県コード(Numeric)ができたので、後は結合が楽にできます。
ちなみに、地域コードを残したので、この後の結合は、地域コードで結合が可能です。

結合の実際(left_join)

join_df<- left_join(ssdse,jisatu, #基準df,加えるdf
          by = "tiiki", #Keyの順。
                    suffix = c("_x", "_y")) #仮に同じ変数名があった場合は_x_yをつけてくれる

目的のデータセットができあがれば、そのデータセットを用いて分析を行う。
最後にunmatched = “drop” を追加すると、マッチしなかった行は基準Dfからも除いてくれる(Inner_joinと同じ挙動)

一部分だけleft_joinしたいとき

全部left_joinすると視認性が低くなります。
一部分だけをleft_joinするには、結合するdf(加える方のDf)から変数をselectするのが適切です。
以下は、合計特殊出生率を抜き出す場合です。(合計特殊出生率のHigh/Lowも出したい)
その後の展開を見込み、naimanに結合するところまで。

tfr <- join_df %>% 
  dplyr::select(合計特殊出生率,tiiki)

tfr <- tfr %>% 
  rename(tfr = '合計特殊出生率') %>% 
  mutate(tfr_f = if_else(tfr > 1.2 , 1, 0),
         tfr_f = as.factor(tfr_f))

naiman_ketsugo <- left_join(naiman, tfr, by = "tiiki",
                            suffix = c("_x", "_y"),
                            unmatched = "drop")