Shiny 教程2

作者: Liam_ml | 来源:发表于2019-03-06 16:20 被阅读35次

这个例子展示了直接打印R对象,以及使用HTML表格显示数据

运行下列代码,打开第二个例子:

library(shiny)
runExample("02_text")
image.png

hinyexample2

通过这个例子我们来学习UI和server之间是如何建立联系的。

我们来查看一下代码:

# Define UI for dataset viewer app ----
ui <- fluidPage(
  
  # App title ----
  titlePanel("Shiny Text"), # 标题
  
  # Sidebar layout with a input and output definitions ----
  sidebarLayout(
    
    # Sidebar panel for inputs ----
    sidebarPanel(
      
      # Input: Selector for choosing dataset ----
      selectInput(inputId = "dataset",
                  label = "Choose a dataset:",
                  choices = c("rock", "pressure", "cars")), # 这是一个选择输入
      
      # Input: Numeric entry for number of obs to view ----
      numericInput(inputId = "obs",
                   label = "Number of observations to view:",
                   value = 10) # 这是一个数字输入
    ),
    
    # Main panel for displaying outputs ----
    mainPanel(
      
      # Output: Verbatim text for data summary ----
      verbatimTextOutput("summary"), # 这是一个输入
      
      # Output: HTML table with requested number of observations ----
      tableOutput("view") # 这是一个表格输入
      
    )
  )
)

我们可以看到

页面布局是默认的布局,边栏布局
UI中有两个部件selectInput和numericInput,选择输入和数字输入
有两个输出: verbatimTextOutput(“summary”),tableOutput(“view”),这两个输出对应的ID分别是“summary”和“view”

两个UI部件selectInput和numericInput,这两个部件的ID分别是dataset 和obs

Server

#Define server logic to summarize and view selected dataset ----
server <- function(input, output) {
  
  # Return the requested dataset ----
  datasetInput <- reactive({ # 输入
    switch(input$dataset,
           "rock" = rock, # 对应了不同的数据集合
           "pressure" = pressure,
           "cars" = cars)
  })
  
  # Generate a summary of the dataset ----
  output$summary <- renderPrint({ # 输出一个summary,这是一个R对象
    dataset <- datasetInput()
    summary(dataset)
  })
  
  # Show the first "n" observations ----
  output$view <- renderTable({ # 另外一个输出
    head(datasetInput(), n = input$obs)
  })
  
}

输入:

UI中selectInput部件对应的数据为input$dataset
UI中numericInput部件对应的数据为input$obs

输出:

 1.verbatimTextOutput(“summary”),server中对应的是outputsummary2.tableOutput("view"),server中对应的是outputview

render函数

1.输出通过render函数进行传递,举例而言,renderPrintsummary(dataset)赋值给了outputsummary2.renderTablehead(datasetInput(),n=inputobs)的 结果为赋值给了output$view

总结:

UI中的元素都存在一个ID,server通过ID进行提取,例如,inputobs或则 output$summary
输出通过render函数进行传递

相关文章

  • 「R shiny 基础」初识Shiny

    传送门 Shiny基础教程: 「R shiny 基础」初识Shiny 「R shiny 基础」如何进行网页布局 「...

  • Shiny 教程2

    这个例子展示了直接打印R对象,以及使用HTML表格显示数据 运行下列代码,打开第二个例子: hinyexample...

  • Shiny入门

    R shiny 官方教程在:https://shiny.rstudio.com/tutorial/ 代码海洋上的S...

  • LearningR-shiny

    1. shiny 1.1 About shiny 1.2 shiny examples 2. rsconnect ...

  • Coding and Paper Letter(八十七)

    大家新年好,新一期资源整理博客。 1 Coding: 1.针对R语言新手的shiny培训教程。 shiny beg...

  • Shiny 教程1

    简介shiny 什么是shiny: Shiny 是一个开源的 R 包,它为使用 R 构建 Web 应用提供了一个优...

  • shiny的教程

    Shiny应用基础(1):导言 [https://zzhao.blog.csdn.net/article/deta...

  • shiny部署

    有几种方式: 1. Shinyapps.io 2. Shiny server 3. Shiny Server Pr...

  • [shiny 2]

    ui 用户自定义界面设置server 服务端脚本 Shiny Text这个应用程序展示的是直接打印R对象,以及用H...

  • R shiny教程-2:布局用户界面

    Shiny 是RStudio公司开发的R包,利用Shiny 可以轻松构建交互式Web应用程序(App)。 在前面一...

网友评论

    本文标题:Shiny 教程2

    本文链接:https://www.haomeiwen.com/subject/bghxpqtx.html