开始使用免费开始使用

创建一些辅助函数

一个 shinydashboard 可以加入很多元素。要让用户输入与仪表板输出产生交互,您需要在放置于 server 的 render 函数中定义这些交互。

如果交互和输出都很多,代码会很快变得臃肿。一个解决办法是在 shinydashboard 环境之外编写您自己的辅助函数。

接下来,您将构建两个辅助函数:

  1. num_listings():基于 price 区间筛选后的数据,返回房源数量。
  2. make_plots():根据用户选择生成箱线图或小提琴图,并基于 price 区间筛选后的数据。

已加载 listings,并已导入 sftidyverseleaflet

本练习是课程的一部分

使用 shinydashboard 构建仪表板

查看课程

练习说明

  • 筛选 listings,使其仅保留落在参数 range 的左右边界之间的记录。range 是 shinyApp 输入的占位符。
  • 设置正确的 if-else 条件:当 choice 等于 "Box plots" 时绘制箱线图,当其为 "Violin plots" 时绘制小提琴图。

交互式实操练习

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

num_listings <- function(range){
  # Filter listings appropriately
  filter(listings, price >= ___, price <= ___) %>% nrow()
}
make_plots <- function(range, choice){
  filtered_listings <- filter(listings, price >= range[1], price <= range[2])
  # Set the correct if-else conditions
  if (choice == ___){
     filtered_listings %>%
      ggplot(aes(y = price, x = room_type)) + geom_boxplot() + theme_classic()
  }
  else if (___){
    filtered_listings %>%
      ggplot(aes(y = price, x = room_type)) + geom_violin() + theme_classic()
}}
编辑并运行代码