कुछ हेल्पर फंक्शन बनाना
shinydashboard में आप कई एलिमेंट जोड़ सकते हैं. यूज़र इनपुट और डैशबोर्ड आउटपुट के बीच इंटरैक्शन सक्षम करने के लिए, आपको ये इंटरैक्शन सर्वर में रखे गए render फंक्शनों के भीतर परिभाषित करने होते हैं.
अगर इंटरैक्शन और आउटपुट ज़्यादा हों, तो कोड जल्दी ही भारी और उलझा हुआ लग सकता है. इस समस्या से निपटने का एक तरीका है कि आप shinydashboard एनवायरनमेंट के बाहर अपने खुद के हेल्पर फंक्शन बनाएँ.
आगे आप दो हेल्पर फंक्शन बनाएँगे:
num_listings(): फ़िल्टर किए गए डेटा के आधार परpriceरेंज के भीतर लिस्टिंग्स की संख्या लौटाता है.make_plots(): यूज़र की चयन के आधार पर बॉक्सप्लॉट या वायलिन प्लॉट बनाता है, औरpriceरेंज के भीतर फ़िल्टर किए गए डेटा पर आधारित होता है.
listings लोड है, और sf, tidyverse तथा leaflet इम्पोर्ट किए गए हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
shinydashboard के साथ डैशबोर्ड बनाना
अभ्यास निर्देश
listingsको ऐसे फ़िल्टर करें कि वह आर्ग्युमेंट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()
}}