分享

「R shiny 基础」初识Shiny

 生物_医药_科研 2019-02-03

过年掌握一个新技能,基本教程翻译自Shiny官方文档。

简介

shiny一个能够方便构建交互式网页应用的R包,在这一部分我们将会开始学习如何搭建一个Shiny应用。

如果你还没有安装Shiny的话,那么你需要打开R语言(显然,你需要联网)

  1. install.packages('shiny')

案例

Shiny 提供了7个内置案例方便你熟悉shiny的不同属性,了解shiny如何工作。并且每个案例都是完全独立的shiny应用。让我们先从Hello Shiny这个例子开始,了解如何用R的 faithful数据集绘制一个直方图。用户可以选择直方图中每个分箱的大小,并且实时得到反馈。

  1. library(shiny)

  2. runExample('01_hello', port=9999, host='0.0.0.0')

随后那么你就可以通过服务器的IP地址加端口号访问这个应用。

Shiny应用的架构

一个简单的Shiny应用只需要一个 app.R脚本,一般放在一个项目文件夹下,例如 newdir/app.R, 那么运行的方式为, runApp('newedir').

app.R包括三个部分

  • 一个用户交互(UI)对象: 负责对网页进行布局

  • 一个服务端(server)函数: 服务器端处理数据

  • 一个 shinyApp函数

Shiny 0.10.2之前,Shiny不支持单文件应用,ui对象和server函数需要单独放在 ui.Rserver.R中。

UI

如下是案例Hello Shinyui对象代码

  1. library(shiny)


  2. # 定义柱状图的交互界面

  3. ui <> fluidPage(


  4.  #标题

  5.  titlePanel('Hello Shiny!'),

  6.  # 侧边栏,包含输入和输出的定义

  7.  sidebarLayout(


  8.    # 输入的侧边栏

  9.    sidebarPanel(


  10.      # 输入:关于bin的数目

  11.      sliderInput(inputId = 'bins',

  12.                  label = 'Number of bins:',

  13.                  min = 1,

  14.                  max = 50,

  15.                  value = 30)


  16.    ),

  17.   # 展示输出的界面

  18.    mainPanel(


  19.      # 输出: 柱状图

  20.      plotOutput(outputId = 'distPlot')

  21.    )

  22.  )

  23. )

sever

如下是案例Hello Shinyserver函数

  1. # 定义绘制柱状图的代码逻辑


  2. server <> function(input, output) {


  3.  # 代码逻辑:

  4.  # 用户选择不同的bin,产生不同的柱状图


  5.  output$distPlot <> renderPlot({


  6.    x    <> faithful$waiting

  7.    bins <> seq(min(x), max(x), length.out = input$bins + 1)


  8.    hist(x, breaks = bins, col = '#75AADB', border = 'white',

  9.         xlab = 'Waiting time to next eruption (in mins)',

  10.         main = 'Histogram of waiting times')


  11.    })


  12. }

代码很简洁,基本就是等待用户提供一个输入,然后返回一个输出, 和普通的R脚本没有多大区别,唯一区别就是代码是嵌套在 reanderPlot函数里面。

运行一个新的Shiny应用

每一个shiny应用都有相同的结果: 一个 app.R包含 uiserver. 你可以新建一个文件件,然后把 app.R放在里面,然后打开一个R终端,按照如下方式运行

  1. library(shiny)

  2. runApp('my_app') # my_app应该替换成你的应用文件夹名

复习

这一片文章主要是根据一个简单的Shiny应用了解Shiny的结构和创建过程。分为如下步骤

  • 新建一个项目文件夹

  • 在文件夹中编辑 app.R

  • 使用 runApp启动应用

  • 使用ctrl+c关闭应用

参考

  • http://shiny./tutorial/written-tutorial/lesson1/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多