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 <- "&#12450;&#12503;&#12522;ID"

#&#12461;&#12540;&#12527;&#12540;&#12489;&#12434;&#21547;&#12416;&#32113;&#35336;&#24773;&#22577;&#12434;&#34920;&#31034;&#65306;estat_getStatsList&#12467;&#12510;&#12531;&#12489;
#&#12450;&#12503;&#12522;ID&#12434;&#35373;&#23450;:appId&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12461;&#12540;&#12527;&#12540;&#12489;&#12398;&#25351;&#23450;:searchWord&#12458;&#12503;&#12471;&#12519;&#12531;
#&#32080;&#26524;&#12399;dplyr&#12497;&#12483;&#12465;&#12540;&#12472;&#12391;&#20966;&#29702;&#12373;&#12428;&#12383;data.frame
ResultData <- estat_getStatsList(appId = AppID, searchWord = "&#21365;")
#&#12487;&#12540;&#12479;&#12398;&#20808;&#38957;&#12434;&#34920;&#31034;
head(ResultData)
Source: local data frame [6 x 12]
@id @code     $
  (chr) (chr) (chr)
1 0003056815    01  &#36786;&#26989;
2 0003056818    01  &#36786;&#26989;
3 0003057644    01  &#36786;&#26989;
4 0003057646    01  &#36786;&#26989;
5 0003057647    01  &#36786;&#26989;
6 0003057668    01  &#36786;&#26989;
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)

#&#32113;&#35336;&#12487;&#12540;&#12479;&#12398;&#12513;&#12479;&#12487;&#12540;&#12479;&#12434;&#21462;&#24471;:getMetaInfo&#12467;&#12510;&#12531;&#12489;
#&#12450;&#12503;&#12522;ID&#12434;&#35373;&#23450;:appId&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12487;&#12540;&#12479;ID&#12434;&#35373;&#23450;:statsDataId&#12458;&#12503;&#12471;&#12519;&#12531;
#&#32080;&#26524;&#12399;list
MetaInfo <- estat_getMetaInfo(appId = AppID,
                              statsDataId = "0003056815")
#&#27083;&#36896;&#30906;&#35469;
#&#20363;&#12391;&#12399;2&#12388;&#12398;data.frame&#12364;&#26684;&#32013;&#12373;&#12428;&#12390;&#12356;&#12414;&#12377;
str(MetaInfo)
List of 2
$ cat01:Classes &lsquo;tbl_df&rsquo;, &lsquo;tbl&rsquo; and 'data.frame':       26 obs. of  5 variables:
  ..$ @code      : chr [1:26] "001" "002" "003" "004" ...
..$ @name      : chr [1:26] "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#26376;&#24179;&#22343;&#25505;&#21365;&#40335;&#39164;&#39178;&#32701;&#25968;" "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#40335;&#21365;&#29983;&#29987;&#37327;" "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#37096;&#38272;&#21172;&#20685;&#26178;&#38291;" "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#37096;&#38272;&#21172;&#20685;&#26178;&#38291;_&#37096;&#38272;&#23478;&#26063;&#21172;&#20685;&#26178;&#38291;&#65288;&#12422;&#12356;&#12539;&#25163;&#38291;&#26367;&#12360;&#21463;&#12369;&#21547;&#12416;&#12290;&#65289;" ...
..$ @level     : chr [1:26] "1" "1" "1" "2" ...
..$ @unit      : chr [1:26] "&#32701;" "kg" "&#26178;&#38291;" "&#26178;&#38291;" ...
..$ @parentCode: chr [1:26] NA NA NA "003" ...
$ cat02:Classes &lsquo;tbl_df&rsquo;, &lsquo;tbl&rsquo; and 'data.frame':       5 obs. of  3 variables:
  ..$ @code : chr [1:5] "001" "002" "003" "004" ...
..$ @name : chr [1:5] "&#24179;&#22343;" "3,000&#32701;&#26410;&#28288;" "3,000&#65374;&#65297;&#19975;" "&#65297;&#19975;&#65374;&#65299;&#19975;" ...
..$ @level: chr [1:5] "1" "1" "1" "1" ...
#&#12487;&#12540;&#12479;&#20869;&#23481;&#12434;&#30906;&#35469;
#code&#12364;&#20998;&#39006;&#20107;&#38917;&#12392;&#12394;&#12426;&#12414;&#12377;
MetaInfo$cat02
Source: local data frame [5 x 3]
@code       @name @level
(chr)       (chr)  (chr)
1   001        &#24179;&#22343;      1
2   002 3,000&#32701;&#26410;&#28288;      1
3   003 3,000&#65374;&#65297;&#19975;      1
4   004  &#65297;&#19975;&#65374;&#65299;&#19975;      1
5   005  &#65299;&#19975;&#32701;&#20197;&#19978;      1

#&#32113;&#35336;&#12487;&#12540;&#12479;&#12434;&#21462;&#24471;:getStatsData&#12467;&#12510;&#12531;&#12489;
#&#12450;&#12503;&#12522;ID&#12434;&#35373;&#23450;:appId&#12458;&#12503;&#12471;&#12519;&#12531;
#&#12487;&#12540;&#12479;ID&#12434;&#35373;&#23450;:statsDataId&#12458;&#12503;&#12471;&#12519;&#12531;
#&#21462;&#24471;&#12377;&#12427;&#12487;&#12540;&#12479;&#25968;:limit&#12458;&#12503;&#12471;&#12519;&#12531;
#&#20998;&#39006;&#20107;&#38917;&#12434;&#25351;&#23450;&#12375;&#12390;&#25277;&#20986;:cdCatXX&#12458;&#12503;&#12471;&#12519;&#12531;,X&#12395;&#12513;&#12479;&#12487;&#12540;&#12479;&#12398;&#30058;&#21495;&#12434;&#25351;&#23450;
#&#12524;&#12505;&#12523;&#12434;&#25351;&#23450;&#12375;&#12390;&#25277;&#20986;:lvCatXX&#12458;&#12503;&#12471;&#12519;&#12531;,X&#12395;&#12513;&#12479;&#12487;&#12540;&#12479;&#12398;&#30058;&#21495;&#12434;&#25351;&#23450;
GetStatData <- estat_getStatsData(appId = AppID,
                                  statsDataId = "0003056815",
                                  #cdCat01 = "003",
                                  lvCat01 = "2",
                                  limit = 100)
#&#24773;&#22577;&#30906;&#35469;
str(GetStatData)
Classes &lsquo;tbl_df&rsquo;, &lsquo;tbl&rsquo; and 'data.frame':       25 obs. of  7 variables:
  $ @cat01    : chr  "004" "004" "004" "004" ...
$ @cat02    : chr  "001" "002" "003" "004" ...
$ @unit     : chr  "&#26178;&#38291;" "&#26178;&#38291;" "&#26178;&#38291;" "&#26178;&#38291;" ...
$ $         : chr  "4519" "2873" "5109" "5262" ...
$ value     : num  4519 2873 5109 5262 4688 ...
$ cat01_info: chr  "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#37096;&#38272;&#21172;&#20685;&#26178;&#38291;_&#37096;&#38272;&#23478;&#26063;&#21172;&#20685;&#26178;&#38291;&#65288;&#12422;&#12356;&#12539;&#25163;&#38291;&#26367;&#12360;&#21463;&#12369;&#21547;&#12416;&#12290;&#65289;" "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#37096;&#38272;&#21172;&#20685;&#26178;&#38291;_&#37096;&#38272;&#23478;&#26063;&#21172;&#20685;&#26178;&#38291;&#65288;&#12422;&#12356;&#12539;&#25163;&#38291;&#26367;&#12360;&#21463;&#12369;&#21547;&#12416;&#12290;&#65289;" "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#37096;&#38272;&#21172;&#20685;&#26178;&#38291;_&#37096;&#38272;&#23478;&#26063;&#21172;&#20685;&#26178;&#38291;&#65288;&#12422;&#12356;&#12539;&#25163;&#38291;&#26367;&#12360;&#21463;&#12369;&#21547;&#12416;&#12290;&#65289;" "&#25505;&#21365;&#39178;&#40335;&#37096;&#38272;&#12398;&#27010;&#27841;_&#37096;&#38272;&#21172;&#20685;&#26178;&#38291;_&#37096;&#38272;&#23478;&#26063;&#21172;&#20685;&#26178;&#38291;&#65288;&#12422;&#12356;&#12539;&#25163;&#38291;&#26367;&#12360;&#21463;&#12369;&#21547;&#12416;&#12290;&#65289;" ...
$ cat02_info: chr  "&#24179;&#22343;" "3,000&#32701;&#26410;&#28288;" "3,000&#65374;&#65297;&#19975;" "&#65297;&#19975;&#65374;&#65299;&#19975;" ...

#&#20363;&#12360;&#12400;cat01&#12398;008&#12434;&#25277;&#20986;&#12375;&#12390;
#&#40335;&#12398;&#39164;&#32946;&#25968;&#12392;&#25152;&#24471;&#12398;&#26834;&#12464;&#12521;&#12501;&#12434;&#25551;&#20889;
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 = "&#39164;&#32946;&#25968;", y = "&#25152;&#24471;") 

出力例

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

estatR

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

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