R之Shiny学习笔记
官方教程:https://shiny.rstudio.com/tutorial/
中文教程:http://yanping.me/shiny-tutorial/
英文教程:https://deanattali.com/blog/building-shiny-apps-tutorial/
Shiny是一个R包,使用它可以很容易构建交互式web应用程序。
1. 入门
Hello Shiny是个简单的应用程序, 这个程序可以生成正态分布的随机数,随机数个数可以由用户定义,并且绘制这些随机数的直方图。
library(shiny)
runExample("01_hello")

Shiny Text这个应用程序展示的是直接打印R对象,以及用HTML表格展示数据框。
更多示例:
"01_hello", "02_text", "03_reactivity", "04_mpg", "05_sliders", "06_tabsets", "07_widgets", "08_html", "09_upload", "10_download", "11_timer"
分别向我们演示了:
| 示例 | 输入形式 | 输出形式 |
| 01_hello # a histogram | 滑动条输入(sliderInput) | 图形输出(plotOutput) |
| 02_text # tables and data frames | 选择输入(selectInput) | 表格输出(tableOutput) |
| 03_reactivity# a reactive expression | 文本输入(textInput),数字输入(numericInput) | 反应式(标题h3) |
| 04_mpg # global variables | 复选框输入(checkboxInput) | |
| 05_sliders # slider bars |
滑动条输入 (数值类型、范围、步长、双取值、符号标示、动画) |
|
| 06_tabsets # tabbed panels | 单选按钮(radioButtons) | 标签页(tabsetPanel) |
| 07_widgets # help text and submit buttons | 帮助信息(helpText),动作按钮(actionButton) | verbatimTextOutput |
| 08_html # Shiny app built from HTML | HTML样式 | |
| 09_upload # file upload wizard | 文件输入(fileInput) | |
| 10_download # file download wizard | 文件输出(downloadButton) | |
| 11_timer # an automated timer | 时间输出 |
在shiny中使用反应值时,最常见的方式是使用input对象。input对象会被传递给shinyServer函数中,让我们可以用类似列表的语法来访问网页上的输入值。为了将反应值转化为可以在网页上呈现的输出,我们要将它们赋值给output对象(同样传递给shinyServer函数)。
input values => R code => output values
创建:

2. 运行&调试
服务端脚本给两个输出赋值:output$caption和output$mpgPlot。为了让用户接口能显示输出,我们需要在主UI面板上添加相应的元素。
打印
cat("foo\n")
cat("bar\n", file=stderr())
调试浏览器
# Always stop execution here
browser()
# Stop execution when the user selects "am"
browser(expr = identical(input$variable, "am"))
错误处理器
# Immediately enter the browser when an error occurs
options(error = browser)
# Call the recover function when an error occurs
options(error = recover)
3. HTML元素
| shiny function | HTML5 equivalent | creates |
|---|---|---|
p |
<p> |
段落 |
h1 |
<h1> |
一级标题 |
h2 |
<h2> |
二级标题 |
h3 |
<h3> |
三级标题 |
h4 |
<h4> |
四级标题 |
h5 |
<h5> |
五级标题 |
h6 |
<h6> |
六级标题 |
a |
<a> |
链接 |
br |
<br> |
换行 |
div |
<div> |
容器 |
span |
<span> |
内联文本 |
pre |
<pre> |
格式字体 |
code |
<code> |
代码块 |
img |
<img> |
图片 |
strong |
<strong> |
粗体 |
em |
<em> |
斜体 |
HTML |
直接将字符串作为HTML代码传递 |
使用HTML定义前端不需要ui.R文件,由index.html文件定义即可。
4. 输入
| function | widget |
|---|---|
actionButton |
Action Button |
checkboxGroupInput |
A group of check boxes |
checkboxInput |
A single check box |
dateInput |
A calendar to aid date selection |
dateRangeInput |
A pair of calendars for selecting a date range |
fileInput |
A file upload control wizard |
helpText |
Help text that can be added to an input form |
numericInput |
A field to enter numbers |
radioButtons |
A set of radio buttons |
selectInput |
A box with choices to select from |
sliderInput |
A slider bar |
submitButton |
A submit button |
textInput |
A field to enter text |
5. 输出
| Output function | Creates |
|---|---|
dataTableOutput |
DataTable |
htmlOutput |
raw HTML |
imageOutput |
image |
plotOutput |
plot |
tableOutput |
table |
textOutput |
text |
uiOutput |
raw HTML |
verbatimTextOutput |
text |
6. 分享
- 通过R脚本;
- 通过网页。


7. 练习
博客:https://www.cnblogs.com/dingdangsunny/p/12586274.html
日期计算器:https://dingdangsunny.shinyapps.io/DateCalculate
FFT分析:https://dingdangsunny.shinyapps.io/FastFourierTransform
R之Shiny学习笔记的更多相关文章
- R语言可视化学习笔记之添加p-value和显著性标记
R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline 上篇文章中提了一下如何通过ggpubr ...
- R parallel包学习笔记2
这个部分我在datacamp上面学习笔记,可视化的性能很差,使用的函数也很少. 可以参考一下大佬的博客园个人感觉他们讲的真的很详细 https://cosx.org/2016/09/r-and-par ...
- 从零开始系列-R语言基础学习笔记之二 数据结构(二)
在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...
- R语言的学习笔记 (持续更新.....)
1. DATE 处理 1.1 日期格式一个是as.Date(XXX) 和strptime(XXX),前者为Date格式,后者为POSIXlt格式 1.2 用法:as.Date(XXX,"%Y ...
- 从零开始系列--R语言基础学习笔记之一 环境搭建
R是免费开源的软件,具有强大的数据处理和绘图等功能.下面是R开发环境的搭建过程. 一.点击网址 https://www.r-project.org/ ,进入"The R Project fo ...
- R语言可视化学习笔记之添加p-value和显著性标记--转载
https://www.jianshu.com/p/b7274afff14f?from=timeline #先加载包 library(ggpubr) #加载数据集ToothGrowth data(&q ...
- R语言可视化学习笔记之ggpubr包—SCI文章图
转载:https://www.jianshu.com/p/678213d605a5?from=jiantop.com Hadley Wickham创建的可视化包ggplot2可以流畅地进行优美的可视化 ...
- R语言入门学习笔记 - 对R软件的认识
一.R软件 1.安装R:自行百度☺ 2.R控制台(R Console)和R程序脚本: 打开R软件,就会直接打开控制台,控制台可以显示程序运行的结果.错误提示等信息,也可以直接输入想要执行的操作并立即返 ...
- R︱shiny实现交互式界面布置与搭建(案例讲解+学习笔记)
要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 看了看往期的博客,这个话题竟然是第 ...
随机推荐
- python数据类型简介
python中的注释:注释仅仅是给人看的,python并不进行识别. 注释的分类: 单行注释:# 多行注释:用三对单引号或双引号 与用户交互: 1.python3中输入 关键字:input() pyt ...
- DBFlow框架的学习笔记之入门
什么是DBFlow? dbflow是一款android高性的ORM数据库.可以使用在进行项目中有关数据库的操作.github下载源码 1.环境配置 先导入 apt plugin库到你的classpat ...
- Allenmind's Blog
听说,Sass和Compass更配哟.来看看Compass的基本用法! 目录 Compass和Sass 安装Compass 项目初始化 编译 Compass的模块 Compass的Helper函数 一 ...
- “一亿”的教训:一次Google信箱诈骗是如何得手的?
网络诈骗是指以非法占有为目的,利用互联网采用虚构事实或者隐瞒真相的方法,骗取数额较大的公私财物的行为.一年比一年网络诈骗越来越高手段,可以说是日益猖獗.在这里提醒一次各位朋友一定要注意自己的网络安全. ...
- 强制迁移、合区 APP太强势伤害用户同时是否违法?
APP太强势伤害用户同时是否违法?" title="强制迁移.合区 APP太强势伤害用户同时是否违法?"> 对于经常混迹在国内各大手游的玩家来说,"合区& ...
- PHP manual-mysqli-connections-翻译
PHP manual-mysqli-connections MySQL服务器支持使用不同的传输层进行连接. 连接可以使用TCP / IP,Unix域套接字或Windows命名管道. 主机名localh ...
- marquee横向无缝滚动无js
<!DOCTYPE html><html><head><meta charset="utf-8"> <title>< ...
- Maven使用和配置
Maven使用和配置 一.maven安装和概念 maven安装 maven编译(compile) 执行测试用例(test) maven打包(package) maven依赖管理 1.maven安装 官 ...
- sklearn简单实现机器学习算法记录
sklearn简单实现机器学习算法记录 需要引入最重要的库:Scikit-learn 一.KNN算法 from sklearn import datasets from sklearn.model_s ...
- SAP CRM Transaction处理中的权限控制
当试图打开一个Opportunity时, 系统会进行如下一系列的权限检查: 1. 检查Authorization object CRM_ORD_OP: 此处会检查当前user的partner func ...