FIFAデータとWDIデータの接続のために

https://sites.google.com/site/worldbankfifa/

にはFIFデータの入手方法, 世銀のWDI (World Development Indicators) のデータの入手方法, それらの結合方法が説明されている. FIFAデータの入手方法は, 前に説明した. WDIについては

http://cran.r-project.org/web/packages/WDI/index.html

をライブラリを導入すれば良い. 接続方法だが, 国コードとFIFA組織のコードの対応表があれば簡単に結合できるだろう. 以下がその方法である.

Wikipedia より, 比較表を入手する.

rm(list = ls())
gc()

##          used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 241939 13.0     407500 21.8   350000 18.7
## Vcells 350155  2.7     786432  6.0   786389  6.0

library(RCurl)

## Loading required package: bitops

library(XML)
url <- "http://en.wikipedia.org/wiki/Comparison_of_IOC,_FIFA,_and_ISO_3166_country_codes"
myData <- getURL(url, .encoding = "UTF-8")
y <- htmlParse(myData, asText = TRUE)

データを洗浄する. まず最初の一行をのぞく.
つぎに, [数字] を除く. (正規表現は苦手なので, 現状8行もかかっている.) そして空白をNAとする.

x <- readHTMLTable(y, which = 3)
x$Flag <- NULL
x$Country <- gsub("[[:digit:]]", "", x$Country)
x$IOC <- gsub("[[:digit:]]", "", x$IOC)
x$FIFA <- gsub("[[:digit:]]", "", x$FIFA)
x$ISO <- gsub("[[:digit:]]", "", x$ISO)
x$Country <- gsub("[[]]$", "", x$Country)
x$IOC <- gsub("[[]]$", "", x$IOC)
x$FIFA <- gsub("[[]]$", "", x$FIFA)
x$ISO <- gsub("[[]]$", "", x$ISO)
x[x == ""] <- NA

df <- data.frame(x, stringsAsFactors = TRUE)

さらに, 現在使われていないデータも同様に作成する.
二行に割ったているものを削除し, 「?」を除去する.

x0 <- readHTMLTable(y, which = 4)
x0$Flag <- NULL
x0$IOC <- gsub("[[:digit:]]", "", x0$IOC)
x0$FIFA <- gsub("[[:digit:]]", "", x0$FIFA)
x0$ISO <- gsub("[[:digit:]]", "", x0$ISO)
x0$IOC <- gsub("\\n", "", x0$IOC)
x0$FIFA <- gsub("\\n", "", x0$FIFA)
x0$ISO <- gsub("\\n", "", x0$ISO)
x0$IOC <- gsub("\\?", "", x0$IOC)
x0$FIFA <- gsub("\\?", "", x0$FIFA)
x0$ISO <- gsub("\\?", "", x0$ISO)
x0[x0 == ""] <- NA
df0 <- data.frame(x0, stringsAsFactors = TRUE)

両者を結合してファイルに保存

df <- rbind(df, df0)
write.csv(df, "IOCFIFAISO.csv", row.names = FALSE, fileEncoding = "UTF-8")
投稿者: kenjimyzk カテゴリー: computer タグ: ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中