Zacznij terazZacznij za darmo

Wybór źródła danych (ui)

W poprzednich ćwiczeniach korzystałeś z 3 różnych źródeł danych do tworzenia chmury słów: książki Sztuka Wojny, pola tekstowego oraz pliku tekstowego. W danym momencie działało jednak tylko jedno źródło. W tym ćwiczeniu umożliwisz użytkownikowi wybór źródła danych dla chmury słów.

To ćwiczenie jest częścią kursu

Studia przypadków: tworzenie aplikacji webowych w Shiny w R

Zobacz kurs

Instrukcje do ćwiczenia

Twoim zadaniem jest dodanie do aplikacji przycisków opcji, które pozwolą użytkownikowi wybrać, czy źródłem słów ma być książka Sztuka Wojny, pole tekstowe, czy przesłany plik. Konkretnie:

  • Dodaj element wejściowy z przyciskami opcji z etykietą „Źródło słów", który ma trzy możliwości do wyboru:
    • Wartości opcji powinny być równe "book", "own" i "file". Nazwy wyświetlane użytkownikowi powinny brzmieć odpowiednio "Art of War", "Wpisz własne słowa" oraz "Wgraj plik".

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod