-
Notifications
You must be signed in to change notification settings - Fork 0
/
11-zhuabao.Rmd
101 lines (72 loc) · 2.34 KB
/
11-zhuabao.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
---
output:
word_document: default
html_document: default
---
# 抓包
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
require(Cairo)
options()
options(stringsAsFactors = TRUE)
require(tidyverse)
require(xml2)
require(XML)
require(RCurl)
require(magrittr)
require(readxl)
require(stringr)
```
## 使用XML包的readHTMLTable爬p2peye的数据
下面将对网页http://www.p2peye.com/shuju/ptsj/进行数据抓取,分析**团贷网**昨天的**成交额**在该网站提供的625家公司里面所处的位置。
### 获取数据
```{r}
options(scipen =100)
html = "http://www.p2peye.com/shuju/ptsj/"
p2phtml = readHTMLTable(html,header = FALSE, stringsAsFactors = F, Encoding = "GBK")
p2pdata <- as_tibble(p2phtml[["platdata"]])
names(p2pdata) <- p2phtml[[1]][1,]
p2pdata$操作 <- NULL
```
### 查看数据结构
```{r}
head(p2pdata)
```
记录10列数据的描述:
- 排序
- 平台名称
- 成交额(万元)
- 综合利率(%)
- 投资人(人)
- 借款周期(月)
- 借款人(人)
- 满标速度(分钟)
- 累计贷款余额(万元)
- 资金净流入(万元)
### 数据整理
```{r}
tmpdata <- p2pdata
# 去除数据中多余文字
tmp1 <- c(3:10)
tmpdata[,tmp1] <- select(tmpdata,tmp1) %>% transmute_all(function(.) {gsub("([万])|([人])|([月])|([分钟])|([%])", "", .)})
# 将文本类型的数字转化成数字类型
tmpdata[,3:10]<- select(tmpdata , 3:10) %>% sapply(as.numeric)
# 将利率用小数表示
tmpdata$综合利率 <- tmpdata$综合利率 / 100
tmpdata <- mutate(tmpdata, group = ifelse(平台名称=="团贷网","团贷网","其他"))
tmpdata$平台名称 <- reorder(tmpdata$平台名称, tmpdata$成交额)
```
### 可视化分析
#### 团贷网昨日成交额的排名
下面用条形图分析625家公司中前十名的排位情况。
团贷网排在第`r (tmpdata %>% mutate(rank.chengjiaoe = rank(-成交额)) %>% filter(平台名称== "团贷网") %>% select(rank.chengjiaoe))[[1,1]]`位。
```{r}
gdata <- select(tmpdata, c("平台名称","成交额","group")) %>%
filter(成交额 > 5000)
gdata %>% head(10) %>%
ggplot(aes(reorder(平台名称,成交额),成交额, fill = group)) +
geom_bar(stat="identity") +
coord_flip() +
geom_text(aes(x = 平台名称,y = 成交额*0.8,
label = sprintf("%2.0f", 成交额)), color = "#008899")
```