「R shiny基础」交互式入门
上一节的「R shiny基础」增加一些小控件放在网页中的控件只能说是装饰品,要想真正让用户通过选择不同参数来得到不同结果,还需要这一节的知识
举个例子:我们希望下面网页在左边选择后,右边会有对应的输出
![](/assets/blank.gif)
两步创建
创建一个交互式的输出,只需要两步
- 在用户界面中增加输出内容项(R object)
- 在
server
中告知Shiny如何响应输入生成输出
第零步: 网页布局
先按照之前的教程,在网页中添加可见元素
ui <- fluidPage(titlePanel("censusVis"),sidebarLayout(sidebarPanel(helpText("Create demographic maps with information from the 2010 US Census."),selectInput("var", label = "Choose a variable to display",choices = c("Percent White", "Percent Black","Percent Hispanic", "Percent Asian"),selected = "Percent White"),sliderInput("range", label = "Range of interest:",min = 0, max = 100, value = c(0, 100))),mainPanel()))
结果如下:
![](/assets/blank.gif)
第一步: 在UI中增加R object
Shiny提供了一组函数,能够在用户界面中(UI)返回R对象。不同函数创建不同类型的输出,如下所示:
输出函数 | 作用 |
---|---|
dataTableOutput | 数据表 |
htmlOutput | 原始HTML |
imageOutput | 图片 |
plotOutput | 作图结果 |
tableOutput | 表格 |
textOutput | 文本 |
uiOutput | 原始HTML |
verbatimTextOutput | 文本 |
作为演示,我们选择textOutput
作为输出项,修改文章的mainPanel
部分
mainPanel(textOutput(outputId = "selectVar"))mainPanel()
所有的的Output系列函数都需要有outputId
参数,shiny根据这个参数确定输出内容的位置。
第二步: 编写构建输出object的代码
先前编写的ui
只是确定了网页中哪个部分用于展示输出信息,具体如何展现输出则是需要一类render函数。shiny可用render类函数如下
渲染函数 | 输出 |
---|---|
renderDataTable | DataTable |
renderImage | 图片(本地的静态文件) |
renderPlot | 作图结果 |
renderPrint | 任何可打印的输出 |
renderTable | 数据框,矩阵或其他类表格结构 |
renderText | 字符串 |
renderUI | Shiny Tag 对象或HTML |
这类函数需要放在server
函数中,例如我们希望能能够在mainPanel
部分输出用户在sidebar选择的内容,代码如下:
server <- function(input, output) {output$selectVar <- renderText({sprintf("Your selection is %s\n", input$var)})
}
如代码所示,render类函数的第一个参数是R的表达式,代码放在{}
中。代码可以是一行,也可以是多行,取决于输出内容的复杂程度。
![](/assets/blank.gif)
注: input后跟着Input类函数中第一个参数值,而output后跟着Output类函数的第一个参数值,如下所示:
![](/assets/blank.gif)
小结
这部分主要介绍
- 使用
output
类函数指定UI中输出的位置 - 使用
render
类函数构建输出的R对象 - 输出的创建代码在
{}
中。
下一部分介绍如何编写更加复杂的代码,根据输出得到更加复杂的输出。
传送门
Shiny基础教程:
- 「R shiny 基础」初识Shiny
- 「R shiny 基础」如何进行网页布局
- 「R shiny基础」增加一些小控件
- 「R shiny基础」交互式入门
- 「R shiny基础」在shiny应用中加载数据和脚本
- 「R shiny基础」reactive让shiny应用运行速度变快
- 「R shiny基础」使用shinyapp分享你的Shiny应用
「R shiny基础」交互式入门相关推荐
- python数据结构推荐书-「算法与数据结构」从入门到进阶吐血整理推荐书单
推荐一下「算法与数据结构」从入门到进阶的书单. 一.入门系列 这些书籍通过图片.打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现, ...
- 河南农大姚文与张会勇课题组合作发表长文综述,系统总结R/Shiny在开发交互式生物学网络工具中的应用...
河南农大姚文与张会勇课题组合作发表长文综述,系统总结R/Shiny在开发交互式生物学网络工具中的应用 近日,河南农业大学生命科学学院姚文教授(校聘)联合张会勇教授课题组在国际知名期刊<Brief ...
- un系统服务器双网卡,「保姆级教程」unRaid入门到精通七:直通网卡、硬盘和其它PCI硬件设备...
本章前言: 上一章节讲过unRaid安装NVIDIA驱动独立显卡加速EMBY,详细见<「保姆级教程」unRaid入门到精通六:unRaid安装NVIDIA驱动独立显卡加速EMBY>,本章将 ...
- vue当前页引入js_「vue基础」新手入门导航(一)
自从Facebook2013年推出React框架以来,基于UI组件的前端框架越来越流行,主要得益于组件的重用性,数据状态的管理等特性. 谷歌也推出了基于组件的第二代Angular框架,致力于开发全平台 ...
- 制作计算机文档,「冯修远」计算机入门0基础教程:Word文档的目录制作
人生就像一场修行,任重而道远.大家好,我是冯修远,一位专注于IT教育行业及编程技术和网络营销的人士.大家通过对前面的内容学习,应该对段落有了一定的了解,对于关于文章段落的基本排版应该没有太大的问题了. ...
- 「算法与数据结构」从入门到进阶吐血整理推荐书单
一.入门系列 这些书籍通过图片.打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维 ...
- R语言基础练习与入门实践
练习: 熟练使用R软件 实践1:最初几步 x=1:100#把1,2,...,100个整数向量赋值到x (x=1:100) #同上, 只不过显示出来 sample(x,20) #从1,...,100中随 ...
- 计算机考研零基础英语怎么复习,「英语零基础」英语基础极差怎样努力才能通过考研英语国家线...
制定可执行的计划,夯实基础,问题针对性的解决,只要做好了这三点,英语过国家线是没啥大问题的~ 下面惊呼君就从这三个方面具体的给大家说说如何具体的复习: 一.制定可执行的计划 大家都知道做计划,月计划, ...
- 「SpringBoot学习一」开发入门--快速创建springboot程序
前言 本片博客记录快速创建springboot工程的两种方式.一种是使用maven创建,一种是使用spring initializr创建.开发环境JDK1.8.IDEA.maven. SpringBo ...
最新文章
- Go 知识点(17)— go 工具链 go test 使用
- 2016年10月起微软更改了更新服务模型
- Activity的launchMode和任务栈小结
- 将一个键值对添加入一个对象_细品Redis高性能数据结构之hash对象
- Spark Streaming 实现思路与模块概述
- 一些SAP UI5的学习笔记
- 网页制作技术革新:《HTML5 网站大观》系列文章导航
- 南风表情包小程序完整版源码 后台API+前端
- 从客户端(Content=p666/p)中检测到有潜在危险的 Request.Form 值。
- Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (4) - 流水线前端概述
- JavaSE09:String、StringBuffer、StringBuilder底层源码解析(纯干货)
- 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd和YYYY-mm-dd HH:mm:ss...
- 第四章表单与文件-笔记-验证
- 计算机视觉技术与应用综述
- 16 台服务器达成 1000 万 tpmC!挑战分布式数据库性能极限
- 触发器、锁存器、边沿触发器——最容易理解的方式
- 企业人脸识别智能门禁系统解决方案
- idea一个工作空间打开多个项目
- MEMS mic之PDM mic(二)
- WordPress中文汉字用户名不能注册怎么办?