数据下载:数据来自链家网爬虫,下载地址为南京链家网数据 密码:skly
#加载数据
data = read.csv('D:/练习集/南京链家楼市分析/dpLianjiabydistrict.csv',header = TRUE,fileEncoding = "gbk")
dim(data)
#数据共有30515行,24列
#看一下数据
str(data)
#1、链家南京每日成交量统计可视化
daySaleAmount <- with(data, table(dealDate))
barplot(daySaleAmount, xlab="交易时间", ylab="成交量(套)", main="链家南京成交量统计(2012.5.3-2017.7.6)"
一、10个数据分析维度
- 各一级区域成交量排行和销售均价情况
- 热门成交房屋户型绘饼图分析
- 链家南京房屋年代统计分析
- 链家南京房屋交易议价空间统计(议价空间 = 挂牌价 - 成交价)
- 链家南京楼层房价统计
- 最贵的top10小区
- 链家每日销售额
- 平均成交总价与平均成交单价
- 房屋成交周期
- 报价和成交价差异
二、数据处理及可视化分析
#加载数据
data = read.csv('D:/案例/南京链家楼市分析/dpLianjiabydistrict.csv',header = TRUE,fileEncoding = "gbk")
dim(data)
#数据共有30515行,24列
#看一下数据
str(data)
#1、链家南京每日成交量统计可视化
daySaleAmount <- with(data, table(dealDate))
barplot(daySaleAmount, xlab="交易时间", ylab="成交量(套)", main="链家南京成交量统计(2012.5.3-2017.7.6)"
- 从2016年12月开始至2017年2月末,南京楼市迎来买买买的高潮!成交量爆增
- 2012.5.3-2017.7.6近五年,南京楼市成交量在2016年末开始迎来买房高峰
#2、一级区域成交量排行和销售均价
#一级区域观测赋值给增加的新变量zone
data$district <-as.character(data$district)
zonedata = function(x){
strsplit(x,split = "/")[[1]][1]
}
zone1 <-sapply(data$district,zonedata)
data$zone <- zone1
data$zone <- factor(data$zone)
zoneSales <- with(data, table(zone))
zoneSales <- sort(zoneSales, decreasing=TRUE)
#一级区域成交量数据表 (图2)
zoneSales=as.data.frame(zoneSales)
- 鼓楼区成交量最大,以8350套成交套数雄居第一!
- 秦淮区以6388套成交套数位于NO2!
#链家南京各区域交易情况绘图!
# 整合数据,计算出各区域均价
tempPrices <- aggregate(data$unitPrice, by=list(zone=data$zone), mean)
zoneUnitPrices <- NULL
# a=NULL a[c("will","night")] = c(1,2) a
zoneUnitPrices[t(tempPrices["zone"])] <- t(tempPrices["x"])
#zoneUnitPrices["建邺"]
zoneUnitPrices[2] <- round(zoneUnitPrices[2], 0)
ry = as.data.frame(zoneUnitPrices)$zoneUnitPrices
ly = zoneSales$Freq
twoord.plot(lx=c(1:9), ly=ly, lylim=c(0, max(zoneSales$Freq)*1.1),
rylim=c(0, max(ry)*1.1), main="链家南京各区域交易情况",
xlab="区域", ylab="成交量(套)", rylab="均价(元)",
rx=c(1:9), ry=ry,
type=c("bar", "b"), xlim=c(0, 10))
##加载均价数据
text(c(1:9), zoneSales$Freq+300, zoneSales$Freq)
rypos <- round(zoneUnitPrices[zoneSales$zone]*max(zoneSales$Freq)/max(zoneUnitPrices))
text(c(1:9), rypos+600, round(zoneUnitPrices[zoneSales$zone]), col="red")