Yıl filtresi ekle: sayısal kaydırıcı girişi
Kaydırıcı girişleri, sayısal girişlere benzer amaçlarla kullanılabilir; çünkü her ikisi de kullanıcıya bir sayı seçme imkânı sunar.
Eğer kaydırıcının başlangıç değeri (value argümanı) tek bir sayıysa, kaydırıcı tekil sayılar seçmek için kullanılır. Ancak başlangıç değeri iki sayıdan oluşan bir vektörse, bu kez kaydırıcı tek bir değer yerine iki sayı seçmek için kullanılır.
Farklı girişlerin farklı argümanlara sahip olabildiğini görmüştük. Her girdinin tam olarak hangi argümanları kullandığını akılda tutmak zor olabilir. Belirli bir giriş fonksiyonuyla hangi argümanları kullanabileceğini öğrenmenin tek yolu, onun dokümantasyonuna ya da yardım dosyasına bakmaktır.
Bu egzersiz
Vaka Çalışmaları: R ile Shiny Kullanarak Web Uygulamaları Geliştirme
kursunun bir parçasıdırEgzersiz talimatları
- UI'a ID'si "years" ve etiketi "Years" olan bir
sliderInput()ekle (satır 14).- Minimum değeri veri kümesindeki en erken yıla, maksimum değeri ise en son yıla ayarla.
- Varsayılan olarak kaydırıcının uç noktaları 1977 ve 2002 olmalı; böylece bu iki yıl dâhil olmak üzere aradaki veriler gösterilsin.
- Sunucuya, girişte seçilen yılların
gapminderverisini alt kümeye ayırmak için kullanılacağı ve yalnızca bu yıllar içindeki kayıtların görüneceği şekilde kod ekle (satır 28).
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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)