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

Veri kaynağını seç (server)

Radyo düğmeleriyle çalışırken, sunucuda radyo düğmesinin değerine erişirken bazen koşullu mantık (if-else ifadeleri) kullanman gerekir. Bu, seçime göre farklı işlemler yapılacağı durumlarda ve nasıl ilerleyeceğine karar vermeden önce seçilen değerin incelenmesi gerektiğinde zorunludur.

Örneğin, veri kaynağını seçen radyo düğmelerinde, hangi seçeneğin işaretlendiğine bağlı olarak farklı kodların çalışması gerekir.

Sıradaki görevin, kullanıcının seçtiği radyo düğmesine göre uygun veri kaynağını kelime bulutu fonksiyonunda kullanmak.

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ı

  • Kelime bulutunda kullanılacak veriyi tutmak için data_source adlı bir tepkisel değişken tanımla (satır 28).
  • "book" seçeneği ("Art of War") seçilirse veri kaynağı olarak artofwar kitabını ata. "own" seçeneği ("Kendi kelimelerini kullan") seçilirse veri kaynağı olarak metin alanının değerini ata. "file" seçeneği ("Bir dosya yükle") seçilirse kullanıcı tarafından yüklenen dosyadaki metni veri kaynağı olarak ata (satırlar 33–36).
  • data argümanı olarak kelime bulutu fonksiyonuna data_source() tepkisel değişkenini ver (satır 51).

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

ui <- fluidPage(
  h1("Word Cloud"),
  sidebarLayout(
    sidebarPanel(
      radioButtons(
        inputId = "source",
        label = "Word source",
        choices = c(
          "Art of War" = "book",
          "Use your own words" = "own",
          "Upload a file" = "file"
        )
      ),
      textAreaInput("text", "Enter text", rows = 7),
      fileInput("file", "Select a file"),
      numericInput("num", "Maximum number of words",
                   value = 100, min = 5),
      colourInput("col", "Background color", value = "white")
    ),
    mainPanel(
      wordcloud2Output("cloud")
    )
  )
)

server <- function(input, output) {
  # Create a "data_source" reactive variable
  data_source <- ___({
    # Return the appropriate data source depending on
    # the chosen radio button
    if (input$source == "book") {
      data <- artofwar
    } else if (input$source == ___) {
      data <- input$___
    } else if (___ == "file") {
      data <- input_file()
    }
    return(data)
  })

  input_file <- reactive({
    if (is.null(input$file)) {
      return("")
    }
    readLines(input$file$datapath)
  })

  output$cloud <- renderWordcloud2({
    # Use the data_source reactive variable as the data
    # in the word cloud function
    create_wordcloud(data = ___(), num_words = input$num,
                     background = input$col)
  })
}

shinyApp(ui = ui, server = server)
Kodu Düzenle ve Çalıştır