BaşlayınÜcretsiz Başlayın

Bir kıta seçici ekle: select input

Kullanıcının seçebileceği çok sayıda seçenek olduğunda, radyo düğmeleri çok yer kaplayabilir ve ideal olmayabilir. Select input'lar—'açılır listeler' olarak da bilinir—kullanıcıdan bir seçenek seçmesini istemek için daha kompakt bir yol sunar. Select input ile tüm seçenekler kaydırılabilir bir listede görünür, bu yüzden çok sayıda seçeneğin varsa bile kullanılabilir.

Radyo düğmelerine benzer şekilde, select input'ların da choices ve selected parametreleri vardır. Buna ek olarak, select input'larda multiple argümanı bulunur; bu TRUE yapıldığında, kullanıcının birden fazla değer seçmesine izin verir.

Son egzersizdeki Shiny uygulamasının kodu küçük değişikliklerle sağlanmıştır.

Bu egzersiz

Vaka Çalışmaları: R ile Shiny Kullanarak Web Uygulamaları Geliştirme

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • UI'a kimliği "continents" ve etiketi "Continents" olan bir selectInput() ekle; varsayılan kıta "Europe" olsun.
    • Listedeki seçenekler, gapminder veri kümesinde bulunan tüm farklı kıtalar olmalı.
    • Kullanıcının aynı anda birden fazla kıta seçmesine izin ver.
  • Sunucuya, sadece seçilen kıtanın verilerinin gösterilmesini sağlayacak kodu ekle; bunu gapminder veri kümesini alt kümeye ayırarak yap (satır 23).

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")),
      # Add a continent dropdown selector
      ___(___, ___,
                  choices = levels(___),
                  multiple = ___,
                  selected = ___)
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    # Subset the gapminder dataset by the chosen continents
    data <- subset(gapminder,
                   ___ %in% ___$continents)

    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)
Kodu Düzenle ve Çalıştır