应用 2:热门婴儿姓名
构建 Shiny 应用是一个模块化过程。您先从 UI 开始,然后编写服务器代码,根据用户输入生成输出。越是有意识地练习这种方法,构建优秀应用就会越容易。
现在,您将构建一个 Shiny 应用,让用户选择性别和年份,并以按姓名(name)统计的出生比例(prop)柱状图,显示该年份最受欢迎的前 10 个名字。最终的应用在视觉上应与下方的截图相似。

我们提供了函数 get_top_names(),用于提取给定 year 与 sex 的前 10 个名字。例如,您可以使用 get_top_names(2000, "M") 获取 2000 年最常见的男性名字前 10 名。
我们还已加载 ggplot2 包。若数据框 d 含有列 x 和 y,您可以使用以下代码创建柱状图:
ggplot(d, aes(x = x, y = y)) +
geom_col()
本练习是课程的一部分
使用 R 构建 Shiny Web 应用
练习说明
- 在应用顶部添加标题,并添加一个 sidebar 布局。
- 在侧边栏添加一个输入,让用户选择性别(
M或F)。 - 在侧边栏添加一个滑块,让用户选择年份(1880 到 2017)。
- 在主面板添加一个图形输出。
- 在服务器中添加一个输出,根据
year和sex渲染柱状图。 请注意,您可以在渲染函数的大括号内编写多行代码:render***({___})。
交互式实操练习
通过完成这段示例代码来试试这个练习。
ui <- fluidPage(
)
server <- function(input, output, session) {
}
shinyApp(ui = ui, server = server)