시작하기무료로 시작하기

도움 함수 만들기

shinydashboard에는 많은 요소를 추가할 수 있어요. 사용자 입력과 대시보드 결과물 사이의 상호작용을 가능하게 하려면, 서버에 배치된 render 함수 안에서 이러한 상호작용을 정의해야 합니다.

상호작용과 출력이 많아지면 코드는 금세 복잡해질 수 있어요. 이를 해결하는 한 가지 방법은 shinydashboard 환경 바깥에서 직접 도움 함수를 만들어 두는 것입니다.

다음에서는 두 가지 도움 함수를 작성해 보겠습니다:

  1. num_listings(): price 범위로 필터링된 데이터에 기반해 숙소 수를 반환해요.
  2. make_plots(): 사용자 선택에 따라 상자 그림(boxplot) 또는 바이올린 플롯을 만들고, price 범위로 필터링된 데이터에 기반해 그려요.

listings는 로드되어 있으며, sf, tidyverse, leaflet는 이미 불러와졌습니다.

이 연습은 강의의 일부입니다

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()
}}
코드 편집 및 실행