上一节的「R shiny基础」增加一些小控件放在网页中的控件只能说是装饰品,要想真正让用户通过选择不同参数来得到不同结果,还需要这一节的知识

举个例子:我们希望下面网页在左边选择后,右边会有对应的输出

示意图

两步创建

创建一个交互式的输出,只需要两步

  1. 在用户界面中增加输出内容项(R object)
  2. 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()))

结果如下:

示意图

第一步: 在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的表达式,代码放在{}中。代码可以是一行,也可以是多行,取决于输出内容的复杂程度。

结果

: input后跟着Input类函数中第一个参数值,而output后跟着Output类函数的第一个参数值,如下所示:

输入和输出

小结

这部分主要介绍

  • 使用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基础」交互式入门相关推荐

  1. python数据结构推荐书-「算法与数据结构」从入门到进阶吐血整理推荐书单

    推荐一下「算法与数据结构」从入门到进阶的书单. 一.入门系列 这些书籍通过图片.打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现, ...

  2. 河南农大姚文与张会勇课题组合作发表长文综述,系统总结R/Shiny在开发交互式生物学网络工具中的应用...

    河南农大姚文与张会勇课题组合作发表长文综述,系统总结R/Shiny在开发交互式生物学网络工具中的应用 近日,河南农业大学生命科学学院姚文教授(校聘)联合张会勇教授课题组在国际知名期刊<Brief ...

  3. un系统服务器双网卡,「保姆级教程」unRaid入门到精通七:直通网卡、硬盘和其它PCI硬件设备...

    本章前言: 上一章节讲过unRaid安装NVIDIA驱动独立显卡加速EMBY,详细见<「保姆级教程」unRaid入门到精通六:unRaid安装NVIDIA驱动独立显卡加速EMBY>,本章将 ...

  4. vue当前页引入js_「vue基础」新手入门导航(一)

    自从Facebook2013年推出React框架以来,基于UI组件的前端框架越来越流行,主要得益于组件的重用性,数据状态的管理等特性. 谷歌也推出了基于组件的第二代Angular框架,致力于开发全平台 ...

  5. 制作计算机文档,「冯修远」计算机入门0基础教程:Word文档的目录制作

    人生就像一场修行,任重而道远.大家好,我是冯修远,一位专注于IT教育行业及编程技术和网络营销的人士.大家通过对前面的内容学习,应该对段落有了一定的了解,对于关于文章段落的基本排版应该没有太大的问题了. ...

  6. 「算法与数据结构」从入门到进阶吐血整理推荐书单

    一.入门系列 这些书籍通过图片.打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维 ...

  7. R语言基础练习与入门实践

    练习: 熟练使用R软件 实践1:最初几步 x=1:100#把1,2,...,100个整数向量赋值到x (x=1:100) #同上, 只不过显示出来 sample(x,20) #从1,...,100中随 ...

  8. 计算机考研零基础英语怎么复习,「英语零基础」英语基础极差怎样努力才能通过考研英语国家线...

    制定可执行的计划,夯实基础,问题针对性的解决,只要做好了这三点,英语过国家线是没啥大问题的~ 下面惊呼君就从这三个方面具体的给大家说说如何具体的复习: 一.制定可执行的计划 大家都知道做计划,月计划, ...

  9. 「SpringBoot学习一」开发入门--快速创建springboot程序

    前言 本片博客记录快速创建springboot工程的两种方式.一种是使用maven创建,一种是使用spring initializr创建.开发环境JDK1.8.IDEA.maven. SpringBo ...

最新文章

  1. Go 知识点(17)— go 工具链 go test 使用
  2. 2016年10月起微软更改了更新服务模型
  3. Activity的launchMode和任务栈小结
  4. 将一个键值对添加入一个对象_细品Redis高性能数据结构之hash对象
  5. Spark Streaming 实现思路与模块概述
  6. 一些SAP UI5的学习笔记
  7. 网页制作技术革新:《HTML5 网站大观》系列文章导航
  8. 南风表情包小程序完整版源码 后台API+前端
  9. 从客户端(Content=p666/p)中检测到有潜在危险的 Request.Form 值。
  10. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (4) - 流水线前端概述
  11. JavaSE09:String、StringBuffer、StringBuilder底层源码解析(纯干货)
  12. 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd和YYYY-mm-dd HH:mm:ss...
  13. 第四章表单与文件-笔记-验证
  14. 计算机视觉技术与应用综述
  15. 16 台服务器达成 1000 万 tpmC!挑战分布式数据库性能极限
  16. 触发器、锁存器、边沿触发器——最容易理解的方式
  17. 企业人脸识别智能门禁系统解决方案
  18. idea一个工作空间打开多个项目
  19. MEMS mic之PDM mic(二)
  20. WordPress中文汉字用户名不能注册怎么办?

热门文章

  1. win7系统开启snmp服务器配置,win7 开启 snmp服务器配置
  2. [完结篇]mm送我的整人生日礼物……
  3. sqlalchemy钩子
  4. 【Books系列】关于读书的思考
  5. Java之多线程下载工具类
  6. 给孩子的Scratch教程Lesson-7【蝙蝠大作战v0.1】
  7. S5P4418裸机开发(十二):IRQ (按键中断) 串口中断
  8. apache虚拟主机配置无效
  9. win10 屏幕截图、标注工具
  10. 大师兄科研网_柯师兄和他的石墨烯