WHO(世界保健機関)が公開しているデータをAPIを利用して取得するパッケージです。参考までに2008年のBMI30以上の男性データを取得し、世界地図にプロットする例を紹介します。
なお、世界地図へのプロットは「rworldmap」パッケージを利用しています。
パッケージバージョンは0.1。実行コマンドはR version 3.2.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール
install.packages("WHO")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("WHO")
#利用できるデータの情報を取得:get_codesコマンド
SummaryCodes <- get_codes()
#CSVでデータを作業フォルダに出力
write.csv(SummaryCodes, "SummaryCodes.csv")
#データのラベルで取得データを指定:get_dataコマンド
#2008年のBMI30以上の調査結果
GetData <- as.data.frame(get_data("WHOSIS_000010"))
#データ構造の確認
str(GetData)
'data.frame': 612 obs. of 8 variables:
$ gho : chr "Adults aged &#8805; 20 years who are obese (%)" ...
$ year : num 2008 2008 2008 2008 2008 ...
$ sex : chr "Male" "Male" "Male" "Male" ...
$ country : chr "Australia" "Bahamas" "Benin" "Chad" ...
$ worldbankincomegroup: chr "High-income" "High-income" "Low-income" "Low-income" ...
$ region : chr "Western Pacific" "Americas" "Africa" "Africa" ...
$ publishstate : chr "Published" "Published" "Published" "Published" ...
$ value : chr "25.2 [22.1-28.4]" "26.7 [12.8-41.1]" "3.5 [2.2-5.0]" "2.4 [0.8-5.1]"
#男性の肥満状況を世界地図へプロット
#男性のデータを抽出
MaleSubsetData <- subset(GetData, GetData[, 3] == "Male")
#valueのデータの"[]"部分を削除
MaleSubsetData[, 8] <- as.numeric(sapply(MaleSubsetData[, 8], function(x) unlist(strsplit(x, " ")[[1]][1])))
#世界地図へのプロットが簡単なrworldmapパッケージを読み込み
#install.packages("rworldmap")
library("rworldmap")
#プロット
PlotCountMap <- joinCountryData2Map(MaleSubsetData, joinCode = "NAME", nameJoinColumn = "country")
mapCountryData(PlotCountMap, nameColumnToPlot = "value", mapTitle = "2008:Male BMI 30 >=")
出力例
・男性の肥満状況を世界地図へプロット
少しでも、あなたのウェブや実験の解析が楽になりますように!!