创建一些辅助函数
一个 shinydashboard 可以加入很多元素。要让用户输入与仪表板输出产生交互,您需要在放置于 server 的 render 函数中定义这些交互。
如果交互和输出都很多,代码会很快变得臃肿。一个解决办法是在 shinydashboard 环境之外编写您自己的辅助函数。
接下来,您将构建两个辅助函数:
num_listings():基于price区间筛选后的数据,返回房源数量。make_plots():根据用户选择生成箱线图或小提琴图,并基于price区间筛选后的数据。
已加载 listings,并已导入 sf、tidyverse 和 leaflet。
本练习是课程的一部分
使用 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()
}}