Shiny:自动获取和展示中国宏观杠杆率数据

Shiny:自动获取和展示中国宏观杠杆率数据

前面我们已经讲了如何使用 Stata、R 和 Python 获取并展示中国宏观杠杆率数据。今天的教程介绍的是如何使用 R 语言中的 Shiny 包编写一个网页应用自动获取和展示中国宏观杠杆率数据。

一个最简单的 Shiny 应用

下面的代码可以创建一个最简单的 Shiny 应用:

代码去哪了?

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

运行之后可以看到一个这样的网页应用:

这个网页应用由两个部分组成,滑动条输入控件和图表渲染结果。我们简单讲解一下这个网页应用的源码(具体的可以我直播的时候会讲解,用文字叙述太困难了)。

这个应用由三个部分组成:

  1. ui:UI,用户界面,这是个 shiny.tag 对象(可以运行 class(ui))看到。UI 部分定义了网页的样式;
  2. server:服务器端,负责响应用户在用户界面的操作。
  3. shinyApp:启动应用。

我们再看 UI 部分的设计,也包括三个部分:

  1. titlePanel:标题栏;
  2. sidebarPanel:侧边栏;
  3. mainPanel:主体部分。

我们可以看到 sidebarPanel 和 mainPanel 共同被放置在 sidebarLayout 里面,这表示网页的布局是一个侧边栏 + 主体区域的布局。

sidebarPanel 里面是一个滑动条输入控件,由 sliderInput 定义,运行 ?sliderInput 就可以看到这个函数需要的参数了,对于任何 Shiny 中的输入控件,最重要的参数都是 inputId,这个 id 是连接 UI 和 Server 的桥梁。例如这里的 sliderInput 的 inputId 是 “bins”,对应的 Server 部分使用 input$bins 调用 sliderInput 的结果。

mainPanel 里面是一个图表渲染的控件:plotOutput,表示图表在这里渲染,这种类型的函数(输出函数,上面的 sliderInput 是输入函数)最重要的参数是 outpltId,也是连接 UI 和 Server 的桥梁。例如这里 plotOutput 的 id 是 distPlot,对应 Server 部分的 id 是使用 output$distPlot 把需要渲染的图表通过 distPlot 发送到 plotOutput 处渲染。

需要注意的是 Server 部分使用 renderPlot 渲染 ggplot2 这一类型的静态图表。

构建自动获取和展示中国宏观杠杆率的 Shiny 应用

我先把代码 po 出来:

代码去哪了?

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

这个应用运行起来是这样的:

首先我把 Excel 文件下载到创建的临时文件夹里,这是因为开发任何软件都应该遵循这样一个原则:不能未经用户允许下载文件到用户设备上,而临时文件夹就不同了,程序结束之后会被自动删除。

这个应用的用户界面和前面的简单 Shiny 应用差不多,一个侧边栏加上一个主界面,侧边栏里使用的是 checkboxInput 输入控件,输入的是逻辑 TRUE 和 FALSE。

Server 部分首先生成一个向量 lv 用于收集选择的杠杆率变量,然后通过 reactive 函数进行响应(就是可以对用户的操作进行实时响应)筛选所需的杠杆率,最后使用 renderPlot 进行绘图。详细的介绍可以等直播的时候再听我慢慢讲述。

使用 shinymaterial 框架构建漂亮的用户界面

先把结果 po 出来:

侧边栏是可以隐藏起来的:

这个应用还添加了数据下载和图表下载的功能。

详细代码我就不再贴出来了,可以下载附件自行学习,在直播中我也会细致讲解这个应用的工作过程。

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

#

评论

Your browser is out-of-date!

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

×