利用程式有系統地造訪網頁,取得網頁內容。
取出有用的資料以利後續應用。
開始之前,和大家說,不要專注看code,專注在流程。
使用「httr」套件
library(httr)
url = "https://github.com/dboyliao/DSC2015_RBasic"
response = GET(url)
content = content(response)
print(capture.output(content)[1:10]) # Capture first 10 lines of output
會有些許不同,但大多是一樣的
library(XML)
library(selectr)
nodes = querySelectorAll(content,".files .content a")
nodes
xmlValue(nodes[[1]])
for(node in nodes){
print(xmlValue(node))
}
made with www.draw.io
made with www.draw.io
參數 | 意義 | 格式、範例 |
---|---|---|
service_time | 出勤日期 | 格式為 YYYY-mm-dd |
service_unit[] | 出勤分隊 | 例如 樹林分隊 、 板橋分隊 |
service_type[] | 出勤任務類型 | 目前只能輸入 救護、火災 、 災害 |
取得2015年7月25日的當日出勤記錄
library(jsonlite)
url = "http://ha2.tw/ntpcfd/api/json?service_time=2015-07-25"
data = jsonlite::fromJSON(url)
head(data)
summary(data)
library(knitr)
data$service_type = as.factor(data$service_type)
data$service_unit = as.factor(data$service_unit)
data$lat = as.numeric(data$lat)
data$lng = as.numeric(data$lng)
dataWithGeoPoint = data[ data$lng>0, ]
head(summary(dataWithGeoPoint)) # 這裡用head只是為了讓summary漂亮顯示
write.table(dataWithGeoPoint, file = "ntc.csv", sep = "," )
library(ggplot2)
library(ggmap)
box = make_bbox(dataWithGeoPoint$lng, dataWithGeoPoint$lat)
p = ggmap(get_map(box), darken = c(0.5, "black"))
q = p + geom_point(data=dataWithGeoPoint, aes(lng, lat, colour="red", alpha = 1/10 ), size =3)+ theme(legend.position="none")
q