开始使用免费开始使用

按预期寿命筛选

Shiny 的真正优势在于将输入与输出结合使用。上一个练习中创建的表格是静态的——无法更改——但在探索数据时,若用户能自行决定查看数据的子集会更好。

这可以通过添加一个输入,让用户选择一个用于筛选数据的数值来实现。这样,我们在上一个练习中创建的表格就能变为动态的。

gapminder 数据集中有一个变量 lifeExp(预期寿命)。您的任务是为 Shiny 应用添加一个滑块输入,让用户选择预期寿命的最小值和最大值,并使表格仅显示与这些取值匹配的数据。

本练习是课程的一部分

案例研究:使用 R 的 Shiny 构建 Web 应用

查看课程

练习说明

  • 在 UI 中添加一个 ID 为 "life" 的滑块输入,最小值为 0,最大值为 120,默认选择为 30-50。
  • 在渲染函数中,使用该输入值对 gapminder 数据进行子集筛选,仅保留 lifeExp 介于最小值和最大值之间(两端都包含)的记录。

交互式实操练习

通过完成这段示例代码来试试这个练习。

ui <- fluidPage(
  h1("Gapminder"),
  # Add a slider for life expectancy filter 
  ___(inputId = ___, label = "Life expectancy",
      min = ___, max = ___,
      value = c(30, 50)),
  tableOutput("table")
)

server <- function(input, output) {
  output$table <- renderTable({
    data <- gapminder
    data <- subset(
      data,
      # Use the life expectancy input to filter the data
      lifeExp >= ___life[1] & lifeExp <= ___life[2]
    )
    data
  })
}

shinyApp(ui, server)
编辑并运行代码