Construire des objets de sortie
Il y a trois règles pour construire une sortie dans Shiny :
Construisez l'objet avec la fonction
render*()appropriée.Enregistrez le résultat de la fonction render dans la liste
output, qui est un paramètre de la fonction server. Plus précisément, enregistrez-le dansoutput$<outputId>afin de remplacer l'espace réservé de sortie dans l'interface qui a l'IDoutputId.Si la sortie dépend de valeurs d'entrée modifiées par l'utilisateur, vous pouvez accéder à n'importe quelle entrée grâce au paramètre
inputde la fonction server. Plus précisément,input$<inputId>retournera toujours la valeur actuelle du champ de saisie dont l'ID estinputId.
Cette activité fait partie du cours
Études de cas : créer des applications Web avec Shiny en R
Instructions de l’exercice
On vous fournit une application Shiny dont la partie interface (UI) est entièrement fonctionnelle. Votre tâche est de construire toutes les sorties. Plus précisément :
- Créez un graphique du jeu de données
carsdans l'espace réservé de sortie de type plot ayant l'ID « cars_plot » (ligne 23). - Dans la sortie de texte « greeting », affichez un message de bienvenue sous la forme « Hello NAME », où NAME est la valeur de l'entrée name (ligne 28).
- Dans la sortie « iris_table », présentez un tableau des n premières lignes du jeu de données
iris, où n est la valeur de l'entrée numérique (ligne 33).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Load the shiny package
library(shiny)
# Define UI for the application
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("name", "What is your name?", "Dean"),
numericInput("num", "Number of flowers to show data for",
10, 1, nrow(iris))
),
mainPanel(
textOutput("greeting"),
plotOutput("cars_plot"),
tableOutput("iris_table")
)
)
)
# Define the server logic
server <- function(input, output) {
# Create a plot of the "cars" dataset
output$cars_plot <- render___({
plot(cars)
})
# Render a text greeting as "Hello "
output$greeting <- ___({
paste("Hello", ___)
})
# Show a table of the first n rows of the "iris" data
___ <- ___({
data <- iris[1:input$num, ]
data
})
}
# Run the application
shinyApp(ui = ui, server = server)