01 75 60 34 00 | conseil@ensae.fr | Prenez RDV |

R expert — Créer une application R Shiny

Prochaine session 30 nov. et 1er déc. 2026
S'inscrire
Voir les autres sessions
R expert — Créer une application R Shiny

Objectifs pédagogiques

  • Savoir concevoir une application web interactive avec R Shiny
  • Se familiariser avec les outils de visualisation disponibles sous R

Programme détaillé

Introduction à R Shiny 1h

  • Structure et Environnement de travail
  • Compréhension du mécanisme de communication

Interface utilisateur : les inputs 1h

  • Conventions de construction
  • Présentation des principaux inputs

Implémentation côté serveur et dialogue avec l’interface : les outputs 1h

  • Conventions de construction
  • Présentation des principaux outputs

Interface utilisateur : structurer sa page 2h

  • Structures principales de l’application *Structures secondaires (onglets, division libre de la page)
  • Packages complémentaires existants

Graphiques interactifs 1h

  • Etats des lieux des outils disponibles
  • Utilisation sous R et implémentation dans shiny

Maîtrise du cycle de vie de l’application 2h30

  • Partage de données (expressions réactives)
  • Isolation des calculs
  • Processus de mise- à jour

Look & Feel avec du HTML et du CSS 1h30

  • Logique de fonctionnement et possibilités

Bonnes pratiques de codage et méthode de debugging 1h

Déploiement et mise en production 1h

Public visé

Toute personne souhaitant développer une utilisation avancée de R, notamment les data analysts et data scientists.

Prérequis

Parmi nos formations au langage R, cette formation est le niveau 3. Elle requiert une bonne maîtrise et une utilisation régulière de R (contenu des formations niveau 1 - R initiation et niveau 2 - R intermédiaire).

Approche pédagogique

Moyens pédagogiques
Exposé théorique de concepts Applications pratiques sur ordinateur Échanges sur les pratiques et expériences des participants Temps de questions / réponses Exercices, quiz, etc.
Méthodes pédagogiques
Méthode expositive Méthode active
Satisfaction globale
★★★★★ ★★★★★
4,8/5

Calculés à partir de 28 avis recueillis depuis 07/12/2018, lors de 6 sessions de cette formation.

Contenu
★★★★★ ★★★★★ 4,8/5
Durée et rythme
★★★★★ ★★★★★ 4,6/5
Formateur
★★★★★ ★★★★★ 4,8/5
Supports et ressources
★★★★★ ★★★★★ 4,8/5

Shiny et la programmation réactive : ce qui distingue une application d'un script R

Un script R s’exécute de haut en bas, une fois. Une application Shiny, elle, attend : elle réagit aux choix de l’utilisateur et ne recalcule que ce qui en dépend. Ce modèle, la programmation réactive, est ce qui demande le plus d’efforts à un utilisateur de R habitué aux scripts, et c’est aussi ce qui fait l’intérêt de Shiny.

Une application web sans écrire de JavaScript

Shiny a été lancé par RStudio en novembre 2012, à l’initiative de Joe Cheng, et publié sur le CRAN dans la foulée. Son idée était de permettre à un statisticien de transformer une analyse en application web interactive sans apprendre le HTML, le CSS ou le JavaScript, tout en laissant la possibilité de les utiliser pour personnaliser l’apparence. L’entreprise RStudio a pris en 2022 le nom de Posit ; son offre de publication s’appelle désormais Posit Connect, et une version de Shiny pour Python a été présentée la même année.

Inputs, outputs et expressions réactives

Une application se compose d’une interface (ui), qui déclare les contrôles et les zones d’affichage, et d’une fonction server, qui calcule les sorties. L’expression réactive reactive() évite de répéter un calcul utilisé par plusieurs sorties :

library(shiny)

ui <- fluidPage(
  selectInput("region", "Région", choices = sort(unique(ventes$region))),
  plotOutput("courbe"),
  textOutput("total")
)

server <- function(input, output, session) {
  donnees <- reactive(subset(ventes, region == input$region))
  output$courbe <- renderPlot(plot(donnees()$mois, donnees()$montant, type = "l"))
  output$total  <- renderText(paste("Total :", sum(donnees()$montant)))
}

shinyApp(ui, server)

Shiny construit seul le graphe des dépendances : quand l’utilisateur change de région, donnees() est recalculée une seule fois, puis le graphique et le texte sont mis à jour. Si rien ne change, le résultat déjà calculé est réutilisé.

Contrôler ce qui se recalcule

Cette mécanique automatique a son revers : une application lente est souvent une application qui recalcule trop. isolate() permet de lire une valeur sans créer de dépendance, et eventReactive() ou observeEvent() déclenchent un calcul seulement sur une action explicite, comme un clic sur un bouton « Calculer ». Savoir où placer ces points de contrôle distingue une application réactive d’une application qui se fige à chaque clic.

L’ouvrage de référence Mastering Shiny (Hadley Wickham, 2021) est consultable librement en ligne. Côté Python, le framework Dash repose sur une logique comparable, mais où chaque dépendance est déclarée explicitement : voir la formation Python expert — Développement d’interfaces graphiques et dataviz avancée.