Wähle die Datenquelle (ui)
In den letzten Übungen hast du drei verschiedene Quellen für die Wordcloud verwendet: das Buch Art of War, ein Textfeld und eine Textdatei. Allerdings funktionierte jeweils nur eine Quelle zur selben Zeit. In dieser Aufgabe gibst du den Nutzerinnen und Nutzern die Möglichkeit, auszuwählen, welche Datenquelle für die Wordcloud verwendet werden soll.
Diese Übung ist Teil des Kurses
Fallstudien: Webanwendungen mit Shiny in R erstellen
Anleitung zur Übung
Deine Aufgabe ist es, der App Optionsfelder hinzuzufügen, mit denen die Nutzerinnen und Nutzer auswählen können, ob die Wortquelle das Buch Art of War, die Textarea oder eine hochgeladene Datei sein soll. Konkret:
- Füge eine Optionsfeld-Eingabe mit dem Label "Word source" hinzu, die drei Auswahlmöglichkeiten hat:
- Die Werte der Auswahlmöglichkeiten sollten "book", "own" und "file" sein. Die den Nutzerinnen und Nutzern angezeigten Namen sollten entsprechend "Art of War", "Use your own words" und "Upload a file" sein.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)