Shiny 扩展了基于R 的分析,通过将R 代码和数据包装成一个额外的互动
层,以更好地进行可视化、分析、输出等。这提供了一种强大的方式,使得任
何用户1都可以与数据进行互动、探索和理解数据。
Shiny app 应用场景:
- 开发设计辅助教学工具,让学生交互式探索统计学方法或模型
- 设计动态数据分析报表或仪表盘,给同事领导以交互式的结果呈现
创建
image.png基本结构
由三部分构成:ui(用户界面)、server(服务器)和shinyApp()(接受ui 和server 对象,并运行app).
image.png
Shiny 设计为将Web app 的前端和后端组件分开:
- ui 代表“用户界面”,定义了用户看到并与之交互的前端控件,如图、表、滑块、按钮等。
-
Server 负责后端逻辑:接受用户输入,并使用这些输入来定义应该发生什么样的数据转换,以及将什么传回前端以供用户查看和交互。
(1)ui(前端)
image.png
页面布局
image.png
例子:
image.png
image.png
image.png
image.png
结果:
image.png
(2)server后端
image.png
简单例子:
image.png
输入:
image.png
输出:
image.png
image.png
输出对象
image.pngimage.png
响应表达式
Shiny app 交互时,输入控件的输入一发生改变,Shiny 就要做出响应:重新计算、生成输出、发送给ui. 这就对app 运行效率要求很高,所以就非常需要避免不必要的重复计算。Shiny 中有一种非常重要的机制,叫作响应表达式,就是专用于此的。
响应表达式与函数类似,是使用控件输入完成相应计算并返回值的R 表达式。每当控件更改时,响应式表达式都会更新返回值。
用reactive() 函数创建响应表达式,响应表达式通常是多行代码构成,所以需要用大括号括起来。使用响应表达式的返回结果,类似调用无参数函数:名字().
在Shiny app 的制作中,要尽可能地把交互计算提取出来,作为响应表达式
网友评论