suppressPackageStartupMessages({
  library(knitr)
})
# if (tolower(Sys.info()["sysname"]) == "darwin") par(family="STKaiti") 
opts_chunk$set(cache=FALSE, echo=TRUE)

不動產

利用DataTaipei套件搜尋不動產相關資料集, 並作進一步的統計分析,展現R 語言的資料分析能力。

載入套件

suppressPackageStartupMessages({
  library(DataTaipei)
  library(dplyr)
  library(googleVis)
  library(memisc)
  library(xtable)
  # for rmarkdown
  op <- options(gvis.plot.tag='chart')
})

搜尋資料集

透過dataSetMetadataSearch,我們可以取得關於不動產的搜尋結果:

rs <- dataSetMetadataSearch("不動產")
knitr::kable(rs)

下載實價登錄資訊

本文件以第四筆的搜尋結果為例。

resources <- getResources(rs, 4)
rid <- resources$resourceId[1]
df <- resourceAquire(rid)
# df

整理實價登錄資訊

整理時間欄位後,再從dataSetMetadataSearch中取得欄位資訊:

df <- mutate(df, `SDATE`=as.Date(as.character(SDATE + 19110000),"%Y%m%d"))
colnames(df)[-1] <- strsplit(rs$fieldDescription[4], "、", useBytes = TRUE)[[1]]
knitr::kable(dplyr::select(df, 
                    `成交案件類型(CASE_T)`,
                    `行政區(DISTRICT)`,
                    `都市土地使用分區(LANDA_Z)`,
                    `交易總價(萬元)/租賃總價(萬元)(TPRICE)`,
                    `交易單價(萬元/坪)/租賃單價(元/坪)(UPRICE)`
                    ) %>% head)

簡易分析

都市土地使用分區的交易數

group_by(df, `都市土地使用分區(LANDA_Z)`) %>%
  summarise(count = length(`_id`)) %>%
  gvisBarChart(yvar = "count")

行政區的交易數

group_by(df, `行政區(DISTRICT)`) %>%
  summarise(count = length(`_id`)) %>%
  gvisBarChart(yvar = "count")

單價模型

m <- filter(df, `成交案件類型(CASE_T)` == "買賣") %>%
  lm(formula = `交易單價(萬元/坪)/租賃單價(元/坪)(UPRICE)` ~
     `單價是否含車位(UPNOTE)` +
     `主要建材(MBUILD)` +
     `行政區(DISTRICT)` +
     `都市土地使用分區(LANDA_Z)`)
print.xtable(xtable(m), type = "html")


TaipeiRHackers/DataTaipei documentation built on May 9, 2019, 4:18 p.m.