Skip to content

a helper tool to collect population data in Osaka

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

syunsuke/dalopop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dalopop

dalopop is to a helper tool to collect population data in Osaka. dalopop is one of dalo tools which DAta downLOd helper tool.

dalopopは、大阪府の人口データを集めて活用するためのツールです。 大阪府のホームページで公表されている月次の人口データをダウンロードして、 Rのdata.frameパッケージにするための関数を用意しています。

このツールで利用するデータは、 大阪府が公表している 「大阪府の毎月推計人口」に基づくものです。

URL:https://www.pref.osaka.lg.jp/fuseiunei/toukeijouhou/toukeikajisshinochousa/maitsukisuikeijinkou/index.html

当該データ自体のライセンスに関する明記はありませんが、 「利用上の注意」のページがあるので目を通してください。

インストール

dalopopは、githubからインストールできます。 また、dalopopは、特に、rabbitパッケージと daloパッケージに依存しているので、以下のようにインストールします。 その他で必要になるパッケージは自動的にインストールされるはずです。

# install.packages("devtools")
devtools::install_github("syunsuke/rabbit")
devtools::install_github("syunsuke/dalo")
devtools::install_github("syunsuke/dalopop")

基本的な使い方

  • ダウンロード用のディレクトリを用意します。
  • 現在の大阪府の人口データ公表ページからURLをスクレイピング
  • URLに従ってエクセルファイルをダウンロード
  • ファイルを取り込んでdata.frameにする

ディレクトリを準備します。

Rプロジェクトを作成し、その中にダウンロード用のディレクトリdl_file等を作成します。

ファイルのURLをスクレイピング

大阪府の人口データを公表するページでは、毎月更新されているので、その配布ファイルのURLをスクレイピングします。主となるページのURLは以下です。

https://www.pref.osaka.lg.jp/o040090/toukei/jinkou/jinkou-xlslist.html

URLを元にダウンロード

daloツールのdalo_download_by_urls()関数を使って、 ファイルをダウンロードします。 この関数の引数checkはデフォルトでTRUEになっており、ダウンロードディレクトリ内に、同名のファイルが既にある場合、ダウンロードを行いません。 FALSEにすることで、強制的にダウンロードして上書きします。

ファイルを取り込んでdata.frame

ダウンロードしたエクセルファイルを dalopop_read_file()関数を使って読み込みRのdata.frameにします。

参考となるコード

以下に、大阪の人口データをRデータとして作成するサンプルコードを示します。

library(dalo)
library(rabbit)
library(dalopop)

# ダウンロードデータを保存するディレクトリを準備して
# パスを変数に割当
dl_dir <- "dl_file/"

# エクセルファイルのURLのベクトルを得る
file_urls <- dalopop_get_data_urls()

# ファイルをダウンロード(既存ファイルはダウンロードしない)
dalo_download_by_urls(urls = file_urls,
                      dest_dir = dl_dir,
                      check = TRUE)

# ダウンロードディレクトリ内のファイル一覧を
# ファイルパスのベクトルにする
datafiles <- dir(dl_dir, full.names = TRUE)

# ファイルパスを渡して読み込みdata.frameにする
pop_osaka <- dalopop_read_file(datafiles)

dalopop_read_fileの作成するデータ

上述のコードで生成されるdata.frameの列は以下のようになっています。 年齢別の部分については5歳づつの20区分になっています。

列名 内容
date Date 日付
area chr 地域名
area_id num 市区町村コード
hh num 世帯数 (housholds)
pt num 総人口 (population total)
pm num 男性人口 (population male)
pf num 女性人口 (population female)
yct num 年間の総増減 (total change of year)
ycn num 年間の自然増減 (total natural change of year)
yib num 年間の増減 自然 出生 (total natural increase by birth of year)
ydd num 年間の増減 自然 死亡 (total natural decrease by death of year)
ycs num 年間の増減 社会 (total natural change of year)
mct num 月間の総増減 (total change of month)
mcn num 月間の自然増減 (total natural change of month)
mib num 月間の増減 自然 出生 (total natural increase by birth of month)
mdd num 月間の増減 自然 死亡 (total natural decrease by death of month)
mcs num 月間の増減 社会 (total natural change of month)
pph num 1世帯あたりの人口 (person per households)
ppa num 人口密度 (person per area km^2)
t_total num 総人口
t_00_04 num 0歳から4歳の総人口
t_05_09 num 5歳から9歳の総人口
num
t_90_94 num 90歳から94歳の総人口
t_95_ num 95歳以上の総人口
t_child num 年少総人口(0歳から14歳)
t_young num 生産総人口(15歳から64歳)
t_old num 老年総人口(65歳以上)
m_total num 男性総人口
m_00_04 num 0歳から4歳の男性人口
m_05_09 num 5歳から9歳の男性人口
num
m_90_94 num 90歳から94歳の男性人口
m_95_ num 95歳以上の男性人口
m_child num 年少男性人口(0歳から14歳)
m_young num 生産男性人口(15歳から64歳)
m_old num 老年男性人口(65歳以上)
f_total num 女性総人口
f_00_04 num 0歳から4歳の女性人口
f_05_09 num 5歳から9歳の女性人口
num
f_90_94 num 90歳から94歳の女性人口
f_95_ num 95歳以上の女性人口
f_child num 年少女性人口(0歳から14歳)
f_young num 生産女性人口(15歳から64歳)
f_old num 老年女性人口(65歳以上)

エクセルファイルとしての出力

上記で作成した人口データをエクセルファイルとして出力する例は以下のとおりです。

library(openxlsx)

# 日付型の表示の指定
options("openxlsx.dateFormat" = "yyyy/mm/dd")

# data.frameをエクセルファイルとして書き出す
write.xlsx(osaka_pop,file = "osaka_popdata_20240304.xlsx")

一括処理で簡単にデータを得る

上記の処理を一括して行うには、大阪府の人口データエクセルファイルをダウンロードして保存するディレクトリを用意して、そのディレクトリを指定した以下のコマンドでエクセルファイルを得ることが出来ます。

library(dalopop)

# ダウンロードデータを保存するディレクトリを準備して
# パスを変数に割当
dl_dir <- "dl_file/"

dalopop_outputExcelData(dl_dir)

カレントディレクトリにosakapop_202403042020.xlsxのように日付入のエクセルファイルを作成します。

areasheet引数はデフォルトでTRUEになっていますが、 これをFALSEにすることで、地域毎にシートを分けず、 一つのシートでエクセルファイルを作成します。

# 地域ごとにシートを分けず、一つのエクセルファイルにする
dalopop_outputExcelData(dl_dir, areasheet = FALSE)

もっと簡単に簡単なデータを

人口データのうち、世帯数、総人口、3区分のみの簡単なデータを簡単に得ることもできます。

library(dalopop)

# ダウンロードデータを保存するディレクトリを準備して
# パスを変数に割当
dl_dir <- "dl_file/"

dalopop_outputSmallExcelData(dl_dir)

データをダウンロードするディレクトリを固定することで、既にダウンロードしたデータを再度ダンロードしなくなるので、処理が早くなります。

About

a helper tool to collect population data in Osaka

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages