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

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

那什么叫做控件呢?所谓的控件就是用户能够与其互动的网页元素。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基础教程:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容