शुरू करेंमुफ़्त में शुरू करें

इंटरएक्टिव एलिमेंट्स के साथ आपका पहला 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)
कोड संपादित करें और चलाएँ