ÎncepețiÎncepe gratuit

Alege sursa de date (ui)

În ultimele exerciții, ai folosit 3 surse diferite pentru norul de cuvinte: cartea Arta Războiului, un câmp de text și un fișier text. Însă, la un moment dat, funcționa doar câte o singură sursă. În acest exercițiu, îi vei oferi utilizatorului posibilitatea de a alege ce sursă de date să folosească pentru norul de cuvinte.

Acest exercițiu face parte din cursul

Studii de caz: Construirea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

Sarcina ta este să adaugi butoane radio în aplicație, care să îi permită utilizatorului să aleagă dacă sursa de cuvinte va fi cartea Arta Războiului, zona de text sau un fișier încărcat. Mai exact:

  • Adaugă un input cu butoane radio cu eticheta "Word source" care să aibă trei opțiuni:
    • Valorile opțiunilor trebuie să fie "book", "own" și "file". Numele afișate utilizatorului trebuie să fie, respectiv, "Art of War", "Use your own words" și "Upload a file".

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul