内容へ移動
講義(山本裕樹)
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
socialip_2021:lecture2
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 【社会情報処理】第2回 データの取得 ====== 政府統計の総合窓口(e-Stat)のデータを利用する。 https://www.e-stat.go.jp/ > 政府統計の総合窓口(e-Stat)は、各府省が公表する統計データを一つにまとめ、統計データを検索したり、地図上に表示できるなどの、たくさんの便利な機能を備えた政府統計のポータルサイトです。 > 政府統計名が不明の場合でも、「分野」や「組織」等から絞り込むことで統計データを探すことができます。 ===== e-Statからデータのダウンロード ===== e-Stat から**<fc #ff0000>山形県の市町村</fc>**における**<fc #ff0000>指標データ</fc>**を取得する。 ---- ==== 地域選択 ==== まずは地域を選択する。 - Web ブラウザで [[https://www.e-stat.go.jp/|e-Stat]] にアクセスする。 - 「●統計データを活用する」の [地域] をクリックする。 - **<fc #ff0000>[市区町村データ]</fc>** を選択し、[データ表示] をクリックする。 - 「絞り込み」の「地域区分」で **<fc #ff0000>[山形県]</fc>** を選択する。 - 「地域候補」の[全て選択>] をクリックする。 - [確定] をクリックする。 ---- ==== 指標データの選択 ==== 次にどのような指標データをダウンロードするか項目を選択する。 * [[https://www.e-stat.go.jp/help/cities/items-select10|分野・分類から項目を選択]] - 「データ種別」の **<fc #ff0000>[指標データ]</fc>** をクリックする。 - 「分野」から分野を選択する。 - 「項目候補」から項目を選択する。複数の項目を同時に選択する場合は、[Ctrl] キーを押しながらクリックしていけばよい。 - [項目を選択] をクリックする。 - 欲しい項目を選択し終わるまで手順 2,3,4 を繰り返す。 - 選び終わったら [確定] をクリックする。 ここでは以下の項目を選択することにする。 * #A 人口・世帯 * #A0411001_未婚者割合(15歳以上人口)【%】 * #A05101_人口増減率【%】 * #A05301_転入超過率(日本人移動者)【%】 * #A06202_核家族世帯割合【%】 * #D 行政基盤 * #D02206_課税対象所得(納税義務者1人当たり)【千円】 * #F 労働 * #F01201_第1次産業就業者比率【%】 * #F01202_第2次産業就業者比率【%】 * #F01203_第3次産業就業者比率【%】 * #F01301_完全失業率【%】 [確定] をクリックすると表にデータが表示される。 ---- ==== CSV ファイルのダウンロード ==== 最後に選択した項目のデータを CSV ファイルとしてダウンロードする。 - 右上の [ダウンロード] をクリックする。 - ダイアログが開くので以下のように選択する。{{ socialip_2021:e-stat_download.png?nolink |表のダウンロード}}\\ ※これらの項目は2021年7月1日現在のもの\\ ※うまく表示されないときは [F5] ボタンでリロード(再読込)する。 * ファイル形式:[CSV形式] * ヘッダの出力:[出力しない] * コードの出力:[出力しない] * 階層コードの出力:[出力しない] * 凡例の出力:[出力しない] * [注釈を表示する] のチェックを外す * [桁区切り(,)を使用しない] * 特殊文字の選択:[NAに置き換える] - [ダウンロード] をクリックする。 - ファイルを保存する。 大学の情報環境では、おそらく ''~/Download'' か ''~/Desktop'' に保存される。 ===== 小テスト ===== [[KMS>|Moodle Server(非公式)]]で第2回の小テストを受験しなさい。 ===== RStudioサーバにアップロード ===== ダウンロードしたファイルは手元の端末(クライアント)にあるので、それを RStudio サーバにアップロードしなければ RStudio で読み込めない。 サーバにアップロードする手順は以下の通りである。 - 右下のペインを [Files] タブにする。 - [Upload] をクリックする。 - [参照] をクリックしてアップロードしたいファイルを選ぶ。 ===== CSVファイルの読み込み ===== RStudio で読み込める CSV ファイルの文字コードはデフォルトでは UTF-8 である。 一方、e-Stat からダウンロードした CSV ファイルは文字コードが Shift-JIS なので、読み込むには少し設定が必要である。 ---- ==== 手動で読み込み ==== - 右下のペインを [Files] タブにする。 - 読み込みたいファイルをクリックし、[Import Dataset] を選択する。「不正なマルチバイト文字があります」というエラーが出るが気にせず [OK] をクリックする。 - Import Text Data のダイアログが表示される。 * Name に「df」と入力する。 * Locale で [Configure] をクリックし、Encoding で [SHIFT-JIS] を選んで [Configure] をクリックする。 - [Import] をクリックすると読み込まれる。 これで df という名前のデータフレームにデータが読み込まれる。 もし異なるデータフレーム名にしたければ、Name で入力する文字を変更すればよい。 ---- ==== 関数で読み込み ==== ''read_csv()'' を使う。 パッケージ readr が必要である。 <code rsplus> > library(readr) > df <- read_csv("ファイル名", locale = locale(encoding = "SHIFT-JIS")) </code> これで df という名前のデータフレームに読み込まれる。 ===== データフレームの操作 ===== 手動、もしくは ''read_csv()'' で読み込まれたデータは、データフレームの一種である tibble 型として読み込まれる。 ---- ==== データ構造 ==== データフレームのデータ構造を表示する。 <code rsplus> > str(df) </code> RStudio では右上のペインの [Environment] タブで、データフレーム名の頭についている ○ のアイコンをクリックしてもよい。 ---- ==== 列の参照 ==== 各列はラベルを使って参照できる。 <code rsplus> > df$ラベル </code> ラベルに空白などの特殊な文字が入っている場合は「''`''」で囲む必要があるかもしれない。 <code rsplus> > df$`ラベル` </code> ラベルは長いと入力するのが面倒だが、RStudio では「''$''」まで入力するとラベルの候補を自動的に表示してくれるので、そこから選択すればよい。 列番号で参照することもできる。 <code rsplus> > df[, 列番号] # tibble型になる > df[[列番号]] # ベクトルになる </code> ---- ==== 列の削除 ==== 不要な列はラベルを指定して削除できる。 <code rsplus> > df$ラベル <- NULL </code> 例えば、「/項目」という列は不要なので以下のようにして削除する。 <code rsplus> > df$`/項目` <- NULL </code> ---- ==== 列の置換 ==== 「調査年」の列には "年度" がついているのでこれを削除する。 <code rsplus> > df$調査年 <- sapply(df$調査年, gsub, pattern = "年度", replacement = "") </code> ''sapply()'' はリストの全要素に関数を適用するための関数である。 ここでは、「調査年」の列の全要素に ''gsub()'' という関数を引数 ''pattern="年度"'', ''replacement = ""'' で適用している。 ''gsub()'' は pattern でマッチした文字列を replacement で置き換える関数である。 pattern には正規表現が使用できる。 また、「調査年」の列は "年度" を削除しても character 型(文字列)のままなので、''as.numeric()'' で numeric 型(実数)に変換する。 <code rsplus> df$調査年 <- as.numeric(df$調査年) </code> ---- ==== ソート ==== 「調査年」の小さい順に並べ替える。 <code rsplus> > df <- df[order(df$調査年),] </code> ---- ==== 行の抽出 ==== 「地域」が ''"山形県 酒田市"'' の行のみを抽出して変数 sakatashi に代入するには以下のようにする。 最後の「'',''」を忘れないようにする。 <code rsplus> > sakatashi <- df[df$地域 == "山形県 酒田市",] </code> sakatashi では「地域」の列は不要なので削除する。 <code rsplus> > sakatashi$地域 <- NULL </code> ===== グラフ ===== データフレームからグラフを描くには ''plot()'' が手っ取り早い。 <code rsplus> > plot(データフレーム) </code> データフレームが全て数値ならば、各列を $x$ と $y$ で組み合わせた散布図を描いてくれる。 個別のデータでグラフを描くには以下のようにする。 <code rsplus> > plot(x, y) </code> x に $x$ 軸のデータ、y に $y$ 軸のデータを与える。 主なオプションとして以下のものがある。 ^ オプション ^ 機能 ^ | xlab | $x$ 軸のラベル | | ylab | $y$ 軸のラベル | | xlim | $x$ 軸の範囲 ''c(下限, 上限)'' | | ylim | $y$ 軸の範囲 ''c(下限, 上限)'' | | type | プロットの種類\\ ''"p"'' は点、''"l"'' は折れ線、''"b"'' は点と折れ線 | | title | タイトル | 例えば、酒田市の「課税対象所得(納税義務者1人当たり)【千円】」の推移をグラフで表示するには以下のようにする。 <code rsplus> > plot(sakatashi$調査年, sakatashi$`#D02206_課税対象所得(納税義務者1人当たり)【千円】`, type = "b") </code> ちゃんとしたラベルをつけるには xlab, ylab で指定する。 次のコマンドは長いので2行に分けているが、2行目の「''+''」は改行時に自動的につく記号なので実際は入力しない。 <code rsplus> > plot(sakatashi$調査年, sakatashi$`#D02206_課税対象所得(納税義務者1人当たり)【千円】`, + xlab = "年度", ylab = "課税対象所得(納税義務者1人当たり)【千円】", type = "b") </code> もし、データに ''NA''(欠損値)がある場合は、折れ線ではプロットできない。 その場合は、データから ''NA'' が入っている行を削除する必要がある。 例えば、酒田市の「人口増減率【%】」の推移を折れ線でプロットしたい場合は以下のようにする。 <code rsplus> > sakatashi2 <- na.omit(sakatashi[,c("調査年", "#A05101_人口増減率【%】")]) > plot(sakatashi2$調査年, sakatashi2$`#A05101_人口増減率【%】`, + xlab = "年度", ylab = "人口増減率【%】", type = "b") </code> ''sakatashi[,c("調査年", "#A05101_人口増減率【%】")]'' で sakatashi から「調査年」と「#A05101_人口増減率【%】」の列だけを抽出している。 ''na.omit()'' は ''NA'' が含まれる行を削除する関数である。 ===== 課題 ===== [[KMS>|Moodle Server(非公式)]] で第2回の課題を行いなさい。 締め切り:2021年7月1日(木)20時 ---- ==== 解答例 ==== CSV ファイル名は yamagata.csv にしている。 <file rsplus readcsv.R[enable_line_numbers="true"]> library(readr) df <- read_csv("yamagata.csv", locale = locale(encoding = "SHIFT-JIS")) df$`/項目` <- NULL df$調査年 <- as.numeric(sapply(df$調査年, gsub, pattern="年度", replacement = "")) df <- df[order(df$調査年),] sakatashi <- df[df$地域 == "山形県 酒田市",] sakatashi$地域 <- NULL sakatashi2 <- na.omit(sakatashi[,c("調査年", "#A05101_人口増減率【%】")]) plot(sakatashi2$調査年, sakatashi2$`#A05101_人口増減率【%】`, xlab = "年度", ylab = "人口増減率【%】", type = "b") </file>
socialip_2021/lecture2.txt
· 最終更新: 2022/04/02 17:15 by
you
ページ用ツール
文書の表示
バックリンク
文書の先頭へ