按预期寿命筛选
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)