Year फ़िल्टर जोड़ें: numeric स्लाइडर इनपुट
स्लाइडर इनपुट्स का उपयोग numeric इनपुट्स जैसे ही उद्देश्यों के लिए किया जा सकता है, क्योंकि दोनों उपयोगकर्ता को कोई संख्या चुनने का तरीका देते हैं.
अगर स्लाइडर का प्रारंभिक दिया गया मान (value आर्ग्युमेंट) एक एकल संख्या है, तो स्लाइडर एक-एक करके संख्याएँ चुनने के लिए उपयोग होगा. लेकिन, अगर प्रारंभिक मान दो संख्याओं का वेक्टर है, तो स्लाइडर एक के बजाय दो संख्याएँ चुनने देगा.
हमने देखा है कि अलग-अलग इनपुट्स के अलग-अलग आर्ग्युमेंट्स हो सकते हैं. हर इनपुट किन-किन आर्ग्युमेंट्स का उपयोग करता है, यह ठीक-ठीक याद रखना कठिन हो सकता है. किसी विशेष इनपुट फंक्शन के साथ आप कौन से आर्ग्युमेंट्स उपयोग कर सकते हैं, यह जानने का एकमात्र तरीका उसकी डॉक्यूमेंटेशन या हेल्प फ़ाइल देखना है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
केस स्टडीज़: R में Shiny के साथ वेब एप्लिकेशन बनाना
अभ्यास निर्देश
- UI में ID "years" और लेबल "Years" के साथ एक
sliderInput()जोड़ें (लाइन 14).- न्यूनतम मान डेटासेट के सबसे शुरुआती वर्ष पर और अधिकतम मान सबसे नवीनतम वर्ष पर सेट करें.
- डिफ़ॉल्ट रूप से, स्लाइडर के एंडपॉइंट्स 1977 और 2002 पर सेट होने चाहिए, ताकि केवल इन दो वर्षों के बीच (समेत) का डेटा दिखे.
- सर्वर में ऐसा कोड जोड़ें कि इनपुट में चुने गए वर्षों का उपयोग
gapminderडेटा को subset करने के लिए हो, और केवल इन्हीं वर्षों के भीतर के रिकॉर्ड्स दिखें (लाइन 28).
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("title", "Title", "GDP vs life exp"),
numericInput("size", "Point size", 1, 1),
checkboxInput("fit", "Add line of best fit", FALSE),
radioButtons("color", "Point color",
choices = c("blue", "red", "green", "black")),
selectInput("continents", "Continents",
choices = levels(gapminder$continent),
multiple = TRUE,
selected = "Europe"),
# Add a slider selector for years to filter
___("years", ___, ___, ___, ___)
),
mainPanel(
plotOutput("plot")
)
)
)
# Define the server logic
server <- function(input, output) {
output$plot <- renderPlot({
# Subset the gapminder data by the chosen years
data <- subset(gapminder,
continent %in% input$continents &
year >= ___$years[1] & year <= ___$years[2])
p <- ggplot(data, aes(gdpPercap, lifeExp)) +
geom_point(size = input$size, col = input$color) +
scale_x_log10() +
ggtitle(input$title)
if (input$fit) {
p <- p + geom_smooth(method = "lm")
}
p
})
}
shinyApp(ui = ui, server = server)