Rで解析:政府統計の総合窓口(e-Stat)データ取得に便利です!「estatapi」パッケージ

Rの解析に役に立つ記事

政府統計の総合窓口(e-Stat)で提供しているデータを取得することができるパッケージの紹介です。APIを直接利用するのも手ですが、やはりパッケージは便利です。

利用に必要なアプリケーションIDの取得や簡単なAPIの利用方法は下記記事を参考にしてください。

・Rで解析:政府統計の総合窓口(e-Stat)のAPIを利用したデータの取得例
 https://www.karada-good.net/analyticsr/r-354/

パッケージバージョンは0.2。実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.3で確認しています。

スポンサーリンク
スポンサーリンク

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("estatapi")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("estatapi")

#アプリIDの入力
AppID <- "アプリID"

#キーワードを含む統計情報を表示:estat_getStatsListコマンド
#アプリIDを設定:appIdオプション
#キーワードの指定:searchWordオプション
#結果はdplyrパッケージで処理されたdata.frame
ResultData <- estat_getStatsList(appId = AppID, searchWord = "卵")
#データの先頭を表示
head(ResultData)
Source: local data frame [6 x 12]
@id @code     $
  (chr) (chr) (chr)
1 0003056815    01  農業
2 0003056818    01  農業
3 0003057644    01  農業
4 0003057646    01  農業
5 0003057647    01  農業
6 0003057668    01  農業
Variables not shown: STATISTICS_NAME (chr), @no (chr), CYCLE (chr),
SURVEY_DATE (chr), OPEN_DATE (chr), SMALL_AREA (chr),
OVERALL_TOTAL_NUMBER (chr), UPDATED_DATE (chr), TITLE (chr)

#統計データのメタデータを取得:getMetaInfoコマンド
#アプリIDを設定:appIdオプション
#データIDを設定:statsDataIdオプション
#結果はlist
MetaInfo <- estat_getMetaInfo(appId = AppID,
                              statsDataId = "0003056815")
#構造確認
#例では2つのdata.frameが格納されています
str(MetaInfo)
List of 2
$ cat01:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':       26 obs. of  5 variables:
  ..$ @code      : chr [1:26] "001" "002" "003" "004" ...
..$ @name      : chr [1:26] "採卵養鶏部門の概況_月平均採卵鶏飼養羽数" "採卵養鶏部門の概況_鶏卵生産量" "採卵養鶏部門の概況_部門労働時間" "採卵養鶏部門の概況_部門労働時間_部門家族労働時間(ゆい・手間替え受け含む。)" ...
..$ @level     : chr [1:26] "1" "1" "1" "2" ...
..$ @unit      : chr [1:26] "羽" "kg" "時間" "時間" ...
..$ @parentCode: chr [1:26] NA NA NA "003" ...
$ cat02:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':       5 obs. of  3 variables:
  ..$ @code : chr [1:5] "001" "002" "003" "004" ...
..$ @name : chr [1:5] "平均" "3,000羽未満" "3,000~1万" "1万~3万" ...
..$ @level: chr [1:5] "1" "1" "1" "1" ...
#データ内容を確認
#codeが分類事項となります
MetaInfo$cat02
Source: local data frame [5 x 3]
@code       @name @level
(chr)       (chr)  (chr)
1   001        平均      1
2   002 3,000羽未満      1
3   003 3,000~1万      1
4   004  1万~3万      1
5   005  3万羽以上      1

#統計データを取得:getStatsDataコマンド
#アプリIDを設定:appIdオプション
#データIDを設定:statsDataIdオプション
#取得するデータ数:limitオプション
#分類事項を指定して抽出:cdCatXXオプション,Xにメタデータの番号を指定
#レベルを指定して抽出:lvCatXXオプション,Xにメタデータの番号を指定
GetStatData <- estat_getStatsData(appId = AppID,
                                  statsDataId = "0003056815",
                                  #cdCat01 = "003",
                                  lvCat01 = "2",
                                  limit = 100)
#情報確認
str(GetStatData)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':       25 obs. of  7 variables:
  $ @cat01    : chr  "004" "004" "004" "004" ...
$ @cat02    : chr  "001" "002" "003" "004" ...
$ @unit     : chr  "時間" "時間" "時間" "時間" ...
$ $         : chr  "4519" "2873" "5109" "5262" ...
$ value     : num  4519 2873 5109 5262 4688 ...
$ cat01_info: chr  "採卵養鶏部門の概況_部門労働時間_部門家族労働時間(ゆい・手間替え受け含む。)" "採卵養鶏部門の概況_部門労働時間_部門家族労働時間(ゆい・手間替え受け含む。)" "採卵養鶏部門の概況_部門労働時間_部門家族労働時間(ゆい・手間替え受け含む。)" "採卵養鶏部門の概況_部門労働時間_部門家族労働時間(ゆい・手間替え受け含む。)" ...
$ cat02_info: chr  "平均" "3,000羽未満" "3,000~1万" "1万~3万" ...

#例えばcat01の008を抽出して
#鶏の飼育数と所得の棒グラフを描写
library("ggplot2")
PlotData <- as.data.frame(subset(GetStatData, GetStatData[, 1] == "008"))
ggplot(PlotData, aes(x = PlotData[, 7], y = PlotData[, 5])) +
  geom_bar(stat = "identity") +
  labs(x = "飼育数", y = "所得") 

出力例

・鶏の飼育数と所得の棒グラフを描写

estatR

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました