Weitere ähnliche Inhalte
Kürzlich hochgeladen (11)
オープンデータとR 第2回Linked Open Dataハッカソン関西 in 大阪
- 6. R の 基本操作
(データフレーム)
• d <- data.frame(d1=b, d2=c)
要素は「$」で表す
d1
d2
1
1
x
2
2
y
3
3
z
• d$d2[1] = d[1, 2] = “x”
- 7. R の 基本操作 (データの確認・準備)
• str(), head(), summary()でデータ確認
str(d$d1)
• as.XXXで型を変更 as.integer, as.character…
d$d1 <- as.character(d$d1)
• names()で要素の名前取得/命名
names(d)
names(d) <- c(“名前1”, “名前2”)
- 8. R の 基本操作 (パッケージの利用)
• Rの機能を拡張するためのパッケージ
• install.packages() … インストール
• library() or require() … 呼び出し
• XML … XMLファイル操作
• googleVis … Google Visualization API
- 10. R で オープンデータ (コード)
• データ取得から可視化まで、これだけ
install.packages('XML'); library(XML) #XML package
install.packages('googleVis'); library(googleVis) #googleVis package
int <- "integer"; num <- "numeric"; chr <- "character" #データ型の略記
url <- "http://www3.city.sabae.fukui.jp/xml/aed/aed.xml" #鯖江市URL
data <- xmlToDataFrame(url, stringsAsFactors=F,
colClasses=c(int, chr, chr, int, num, num, chr)) #データ取得
data$latlong <- paste(data$latitude, data$longitude, sep=":") #データ加工
plot(gvisMap(data, locationvar="latlong", tipvar="name")) #表示
- 11. R で オープンデータ (データを取得)
• XMLデータを取得する
#XMLパッケージの導入
#この中の関数xmlToDataFrameを利用する
Install.packages(‘XML’)
library(XML)
#関数xmlToDataFrameを使ってXMLデータを取得
#この関数についてのヘルプを見るには、?xmlToDataFrame
int <- "integer“; num <- "numeric“; chr <- "character“
url <- "http://www3.city.sabae.fukui.jp/xml/aed/aed.xml"
data <- xmlToDataFrame(url,
stringsAsFactors=F, colClasses=c(int, chr, chr, int, num, num, chr))
- 12. R で オープンデータ (データの確認)
• データの中身を(簡単に)確認する
str(data)
'data.frame': 134 obs. of 7 variables:
$ no : int 1 115 116 117 118 119 120 121 122 123 ...
$ name : chr "鯖江高等学校 " "鯖江市嚮陽会館" "鯖江市役所" "JAたんなん ふれあいセンター " ...
$ address : chr "鯖江市舟津町2丁目5-42 " "鯖江市桜町2丁目7番1号" "鯖江市西山町13番1号"...
$ count : int 1 1 1 1 1 1 1 1 1 1 ...
$ latitude : num 35.9 35.9 36 36 36 ...
$ longitude: num 136 136 136 136 136 ...
$ url : chr "http://www3.city.sabae.fukui.jp/xml/aed/#1"
"http://www3.city.sabae.fukui.jp/xml/aed/#115” ...
latitude … 緯度
longitude … 経度
- 13. R で オープンデータ (データを加工)
• データをマッピング用に加工する
#googleVisパッケージの導入
#この中の関数gvisMapを利用する
Install.packages(‘googleVis’)
library(googleVis)
#gvisMap関数で座標を指定するには、「緯度:経度」の形式が必要
#dataに緯度:経度を要素とする項目latlongを追加する
#「データフレーム$項目名」<- 要素 で割り当て
#欲しい要素は「data$latitude:data$longitude」なので
#「data$latitude」と「data$longitude」を「:」で結合(paste)
data$latlong <- paste(data$latitude, data$longitude, sep=":")
- 14. R で オープンデータ (データを表示)
• マッピングする
#gvisMapを利用してマッピング用データを準備
map <- gvisMap(data,
locationvar = “latlong”,
tipvar = “name”,
options = list(showTip = F,
enableScrollWheel = T,
useMapTypeControl = T))
#作成したデータをブラウザで表示する
plot(map)
- 16. R で オープンデータ (SPARQLもできます!)
#SPARQLパッケージを導入する
install.pacages(‘SPARQL’)
library(SPARQL)
#エンドポイントの指定
endpoint <- http://services.data.gov/sparql
#クエリ
query <-"PREFIX dgp1187: <http://data-gov.tw.rpi.edu/vocab/p/1187/>
SELECT ?ye ?fi ?ac
WHERE {
?s dgp1187:year ?ye .
?s dgp1187:fires ?fi .
?s dgp1187:acres ?ac .
}"
#クエリ
qd <- SPARQL(endpoint,query); qd$result