始める無料で始める

ヘルパー関数を作成する

shinydashboard には多くの要素を追加できます。ユーザー入力とダッシュボードの出力を連動させるには、サーバー側に置く render 関数の中でそのやり取りを定義する必要があります。

やり取りや出力が増えると、コードはすぐに扱いにくくなります。この問題を回避する1つの方法は、shinydashboard の外で独自のヘルパー関数を作成することです。

以下では、2つのヘルパー関数を作成します。

  1. num_listings(): price の範囲でフィルタしたデータに基づいて、掲載件数(listings の数)を返します。
  2. make_plots(): ユーザーの選択に応じて箱ひげ図またはバイオリンプロットを作成し、price の範囲でフィルタしたデータに基づいて描画します。

listings は読み込まれており、sftidyverseleaflet はインポート済みです。

この演習はコースの一部です

shinydashboard で作るダッシュボード

コースを見る

演習の手順

  • listings をフィルタして、shinyApp の入力を想定した引数 range の左端と右端の境界のあいだに制限してください。
  • 適切な 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()
}}
コードを編集して実行