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, kursun bir parçasıdır

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

Kursa Göz Atın

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ı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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