CommencerCommencer gratuitement

Construire des objets de sortie

Il existe trois règles pour construire une sortie dans Shiny :

  1. Créez l’objet avec la fonction render*() appropriée.

  2. Enregistrez le résultat de la fonction de rendu dans la liste output, qui est un paramètre de la fonction server. Plus précisément, enregistrez-le dans output$<outputId> afin de remplacer l’emplacement réservé correspondant dans l’UI dont l’ID est outputId.

  3. Si la sortie dépend de valeurs d’entrée modifiées par l’utilisateur, vous pouvez accéder à n’importe quelle entrée via le paramètre input de la fonction server. Plus précisément, input$<inputId> renverra toujours la valeur actuelle du champ de saisie dont l’ID est inputId.

Cet exercice fait partie du cours

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

Afficher le cours

Instructions

On vous fournit une application Shiny avec une partie UI entièrement fonctionnelle. Votre tâche consiste à construire toutes les sorties. Plus précisément :

  • Créez un graphique du jeu de données cars dans l’emplacement de sortie du graphique avec l’ID "cars_plot" (ligne 23).
  • Dans la sortie de texte "greeting", rendez un message de bienvenue sous la forme "Hello NAME", où NAME est la valeur de l’entrée de nom (ligne 28).
  • Dans la sortie "iris_table", affichez 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 cet exemple de code.

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