CommencerCommencer gratuitement

Choisir la source des données (ui)

Au fil des derniers exercices, vous avez utilisé trois sources différentes pour le nuage de mots : le livre Art of War, un champ de texte et un fichier texte. Cependant, une seule source fonctionnait à la fois. Dans cet exercice, vous allez offrir à l’utilisateur un moyen de choisir la source à utiliser pour le nuage de mots.

Cet exercice fait partie du cours

Études de cas : créer des applications web avec Shiny en R

Afficher le cours

Instructions

Votre tâche consiste à ajouter des boutons radio à l’application pour permettre à l’utilisateur de sélectionner si la source des mots doit être le livre Art of War, la zone de texte ou un fichier téléversé. Plus précisément :

  • Ajoutez une entrée de boutons radio avec le libellé "Word source" qui comporte trois choix :
    • Les valeurs des choix doivent être "book", "own" et "file". Les noms affichés à l’utilisateur doivent être respectivement "Art of War", "Use your own words" et "Upload a file".

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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)
Modifier et exécuter le code