IniziaInizia gratis

Scegli l'origine dei dati (ui)

Negli ultimi esercizi hai usato 3 origini diverse per la word cloud: il libro Art of War, un campo di testo e un file di testo. Tuttavia, solo una sorgente funzionava alla volta. In questo esercizio fornirai all'utente un modo per selezionare quale origine dati utilizzare per la word cloud.

Questo esercizio fa parte del corso

Casi di studio: creare applicazioni web con Shiny in R

Visualizza il corso

Istruzioni dell'esercizio

Il tuo compito è aggiungere all'app dei pulsanti di scelta che permettano all'utente di selezionare se la fonte delle parole deve essere il libro Art of War, la textarea o un file caricato. In particolare:

  • Aggiungi un input con pulsanti di scelta con l'etichetta "Word source" che abbia tre opzioni:
    • I valori delle opzioni devono essere "book", "own" e "file". I nomi mostrati all'utente devono essere rispettivamente "Art of War", "Use your own words" e "Upload a file".

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

ui <- fluidPage(
  h1("Word Cloud"),
  sidebarLayout(
    sidebarPanel(
      # Add radio buttons input
      ___(
        inputId = "source",
        label = ___,
        choices = c(
          # First choice is "book", with "Art of War" displaying
          "Art of War" = "book",
          # Second choice is "own", with "Use your own words" displaying
          ___ = "own",
          # Third choice is "file", with "Upload a file" displaying
          ___ = ___
        )
      ),
      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) {
  input_file <- reactive({
    if (is.null(input$file)) {
      return("")
    }
    readLines(input$file$datapath)
  })

  output$cloud <- renderWordcloud2({
    create_wordcloud(input_file(), num_words = input$num,
                     background = input$col)
  })
}

shinyApp(ui = ui, server = server)
Modifica ed esegui il codice