도움 함수 만들기
shinydashboard에는 많은 요소를 추가할 수 있어요. 사용자 입력과 대시보드 결과물 사이의 상호작용을 가능하게 하려면, 서버에 배치된 render 함수 안에서 이러한 상호작용을 정의해야 합니다.
상호작용과 출력이 많아지면 코드는 금세 복잡해질 수 있어요. 이를 해결하는 한 가지 방법은 shinydashboard 환경 바깥에서 직접 도움 함수를 만들어 두는 것입니다.
다음에서는 두 가지 도움 함수를 작성해 보겠습니다:
num_listings():price범위로 필터링된 데이터에 기반해 숙소 수를 반환해요.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()
}}