इंटरएक्टिव एलिमेंट्स के साथ आपका पहला shinydashboard
आपने देखा कि shinydashboard में इंटरएक्टिव एलिमेंट्स कैसे जोड़े जा सकते हैं, और यह भी कि इंटरएक्टिव डेटा टेबल्स कैसे जोड़ी जाती हैं.
इस अभ्यास में, Airbnb लिस्टिंग्स एक डेटा फ्रेम listings के रूप में स्टोर की गई हैं, और जियोस्पैशियल मैप leaflet ऑब्जेक्ट m_london के रूप में स्टोर है. हेडर और साइडबार क्रमशः header और sidebar के रूप में स्टोर हैं.
कस्टम हेल्पर फंक्शंस:
make_plots: बॉक्स प्लॉट्स या वायलिन प्लॉट्स बनाता हैnum_listings: चुनी गई रेंज के आधार पर लिस्टिंग्स की संख्या निकालता हैnum_private_rooms: चुनी गई रेंज के आधार पर, सभी लिस्टिंग्स में से प्राइवेट रूम्स का प्रतिशत निकालता हैmedian_price: चुनी गई रेंज के आधार पर मीडियन प्राइस निकालता है किसी हेल्पर फंक्शन के बारे में और जानने के लिए, आप उसे कंसोल में रन कर सकते हैं (जैसेmake_plots).
यह अभ्यास पाठ्यक्रम का हिस्सा है
shinydashboard के साथ डैशबोर्ड बनाना
अभ्यास निर्देश
"plots"नाम सेplotlyबॉक्स प्लॉट्स/वायलिन प्लॉट्स जोड़ें."table"नाम से एक डेटा टेबल जोड़ें."map"नाम से एकleafletमैप जोड़ें.dashboardPage()में सही आर्ग्यूमेंट्स सेट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
body <- dashboardBody(
tabItems(
tabItem(tabName = "charts",
fluidRow(
valueBoxOutput(outputId = "count"), valueBoxOutput(outputId = "prop"),valueBoxOutput(outputId = "med") ),
fluidRow(
tabBox(side = "left", id = "tabset", height = "500px",
tabPanel("Charts",
# Place plotly object here
fluidRow(box(___("plots", height = 500, width = 600)) ) ),
# Place dataTable object here
tabPanel("Data table", height = "500px", ___("table")) ),
box(side = "right", height = "200px", title = "Welcome to London!",),
box(side = "right", height = "385px", title = "Controls",
sliderInput(inputId = "range", label = "Select price range:",
min = 0, max = 25000,value = c(0,2500)),
selectInput(inputId = "select", label = "Select group:",
choices = c("Box plots", "Violin plots")) ) ) ),
tabItem(tabName = "map",
# Place leaflet object here
fluidRow(box(title = "Map of listings in London", ___("map", height = 600, width = 700))) ) ) )
# Set the correct arguments for dashboardPage()
ui <- dashboardPage(___, ___, ___)
server <- function(input, output) {
output$count <- renderValueBox(valueBox("Number of listings", num_listings(input$range),
icon = icon("house-user") ))
output$prop <- renderValueBox(valueBox("Private rooms", paste0(num_private_rooms(input$range), "% of all listings"),
icon = icon("eye"), color = "orange") )
output$med <- renderValueBox(valueBox("Median price", paste0(median_price(input$range), "£"),
icon = icon("money-bill-alt"), color = "olive") )
output$plots <- renderPlotly(make_plots(input$range, input$select))
output$table <- renderDataTable(filter(listings, price >= input$range[1], price <= input$range[2]) %>% select(c(name, neighbourhood, room_type, price)),
options = list(lengthMenu = c(5, 30, 50)))
output$map <- renderLeaflet(m_london)
}
shinyApp(ui, server)