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 = "所得") #Mac日本語文字化け防止は+でつなげる #theme_bw(base_family = "HiraKakuProN-W3") [/code]


出力例

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


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク