「R shiny基础」增加一些小控件

作者: xuzhougeng | 来源:发表于2019-01-28 17:05 被阅读74次

    在学完基础的网页布局后,我们就可以学学如何在网页中加一些控件,让网页显得可以交互(要想真的能够交互,还得学下一节的内容)。

    那什么叫做控件呢?所谓的控件就是用户能够与其互动的网页元素。Shiny自带的一些控制插件如下:

    函数 插件功能
    actionButton 操作按钮
    checkboxGroupInput 一组复选框
    checkboxInput 单个复选框
    dateInput 单个日期选择
    dateRangeInput 一组日期选择
    fileInput 文件上传A file upload control wizard
    helpText 可添加到输入窗体的帮助文本
    numericInput 数字输入
    radioButtons 单选按钮
    selectInput 一个可供选择的框
    sliderInput 滑动条
    submitButton 提交按钮
    textInput 输入文本的字段

    具体这些函数在网页展示是什么效果呢? 其实Shiny也想到了,所以给了一个控件全景图

    展览

    增加控件

    让我们继续从一个非常j简单的布局开始,尝试添加几个控件。

    ui <- fluidPage(
      
      titlePanel("Hello Widgets"),
      
      sidebarLayout(
        sidebarPanel(),
        mainPanel()
      )
    )
    

    以文本输入控件textInput为例,

    textInput(inputId, label, value = "", width = NULL,
      placeholder = NULL)
    

    前两个参数分别是该控件的唯一ID和在网页中显示的名字,所有控件的前两个都是这两个参数。第一个参数在所有插件中必须唯一,后续的数据交互时shiny需要根据这个ID获取输入信息。

    加入该控件的代码如下

    ui <- fluidPage(
      
      titlePanel("Hello Widgets"),
      
      sidebarLayout(
        sidebarPanel(
         h1("Please input your name"),
         textInput("input1", label = "", value = "",
                   placeholder = "your name")
          
        ),
        mainPanel(
          h1("Showing results")
        )
      )
    )
    

    输入对应的是HTML中的<input>元素,里面的属性type="text"表明它的输入数据是文本。

    检查元素

    练习

    这部分的内容主要是了解,在后续需要时挑选对应的工具,如下 是练习题

    练习题

    如下是我写的代码

    library(shiny)
    
    ui <- fluidPage(
      
      titlePanel("censusVis"),
      
      sidebarLayout(
        sidebarPanel(
          helpText("Create demographic maps with information from the 2010 US census"),
          selectInput("checkBox1", 
                             label = "choose a variable to display",
                             choices = list("A"=1,
                                            "B"=2)
                             ),
          sliderInput("sliderInput", 
                      label = "Range of interest",
                      min = 0, max=100, value = c(0,100), step=10)
          
        ),
        mainPanel(
        )
      )
    )
    
    server <- function(input, output){
    }
    
    
    shinyApp(ui = ui, server = server)
    

    那么如何根据输入调整输出呢?这就是下一节的内容了

    参考资料

    传送门

    Shiny基础教程:

    相关文章

      网友评论

        本文标题:「R shiny基础」增加一些小控件

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