R语言:自动获取和展示中国宏观杠杆率数据 & 初识 R 语言面向对象的编程:R6 类

R语言:自动获取和展示中国宏观杠杆率数据 & 初识 R 语言面向对象的编程:R6 类

在之前的教程中我介绍了如何使用 Stata 自动获取也会展示中国宏观杠杆率数据,昨天有个小伙伴想用 R 语言实现,所以今天我就写一下如何用 R 语言实现这个过程。最后本文还演示了如何通过 R6 类封装实现这一过程的自动化。下次有机会我还会讲述如何编写一个最小的 R 包来加快自己的工作效率!

首先我们的数据来源是:国家资产负债表研究中心 CNBS:中国宏观杠杆率数据,是下面这个样子的:

在左下角有个数据下载按钮,点击就可以下载数据了,下载链接为:http://114.115.232.154:8080/handler/download.ashx ,下载之后会得到这个 xlsx 文件,这个文件的内容是这样的:

如果我们经常需要用这个数据,然后每次要用的时候都要打开这个网站下载,而且这个网站的网址还是个 IP 地址,谁记得住啊!所以如果我们可以写个 R 函数自动获取然后整理好这个数据,最好再配个画图的功能。

那么我们先用 R 完成下载数据、整理数据、图表绘制这三个操作:

下载和整理数据

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

df 数据框就是整理好的数据集了,是下面这个样子的:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

绘图展示

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

scales 包提供的 date_format 函数可以设定日期显示的格式。

使用 R6 类封装

上面的操作有两个部分(整理数据和绘图),我们可以用一个类封装一下,这里我使用的是 R6 包提供的 R6 类,大家感兴趣的话可以封装更多的东西实现更多的功能:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

使用这个类的方法是:

1
2
3
4
5
6
7
# 新建一个 leverage 类:
l <- leverage$new()

# 查看 l 的类:
class(l)

## [1] "leverage" "R6"

可以看出 l 是一个 leverage 类。接下来就可以调用这个类里面的方法了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 获取数据
l$get_leverage()

## # A tibble: 792 x 3
## Period leverage value
## <date> <chr> <dbl>
## 1 1993-12-31 Household 8.31
## 2 1994-12-31 Household 7.81
## 3 1995-12-31 Household 8.2
## 4 1996-03-31 Household 8.4
## 5 1996-06-30 Household 8.6
## 6 1996-09-30 Household 8.8
## 7 1996-12-31 Household 8.9
## 8 1997-03-31 Household 9.3
## 9 1997-06-30 Household 9.6
## 10 1997-09-30 Household 10
## # … with 782 more rows
1
2
# 绘图
l$plot()

除此之外我还把数据源之类的信息封装了进去:

1
2
3
4
# 数据的名称
l$DataBase

## [1] "China's Macro Leverage Ratio Database"
1
2
3
4
# 杠杆率计算的方法
l$LeverageRatio

## [1] "Debt/Nominal GDP"
1
2
3
4
# 单位
l$Unit

## [1] "Percent"
1
2
3
4
# 数据来源
l$Source

## [1] "Center for National Balance Sheets (CNBS)"

最后你还可以直接把 leverage 类传递给 plot() 函数绘图:

1
plot(l)

当然也可以直接把 leverage 类获取的数据保存为一个数据框:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ldf <- l$get_leverage()
ldf

## # A tibble: 792 x 3
## Period leverage value
## <date> <chr> <dbl>
## 1 1993-12-31 Household 8.31
## 2 1994-12-31 Household 7.81
## 3 1995-12-31 Household 8.2
## 4 1996-03-31 Household 8.4
## 5 1996-06-30 Household 8.6
## 6 1996-09-30 Household 8.8
## 7 1996-12-31 Household 8.9
## 8 1997-03-31 Household 9.3
## 9 1997-06-30 Household 9.6
## 10 1997-09-30 Household 10
## # … with 782 more rows

封装成类就可以很容易的使用了嘛!

知识星球附件链接:https://t.zsxq.com/6Un2zrn

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×