06/02/2021

Programme de la séance

  • Architecture d’une application Shiny
  • Notion de réactivité de objets
  • Pratique sur exemples simples
  • Comment partager une application

Disponibilité

Intérêt de Shiny

Une application est avant tout un outil adapté à la diffusion & à la collaboration :

  • une seule interface utilisable par plusieurs personnes simultanément
  • requiert seulement un navigateur web pour l’utilisation
  • permet de toucher un public ne sachant pas utiliser R
  • qui dit intéractivité dit implication

Intérêt de Shiny

Une application est avant tout un outil adapté à la diffusion & à la collaboration :

  • une seule interface utilisable par plusieurs personnes simultanément
  • requiert seulement un navigateur web pour l’utilisation
  • permet de toucher un public ne sachant pas utiliser R
  • qui dit intéractivité dit implication

…et tout ça depuis R !!!

Eh pour quoi faire ?!

Une application Shiny peut servir à :

  • Rendre assessible / Diffuser un jeu de données exploration ou téléchargement
  • …et les analyses / statistiques associées
  • Créer un espace collaboration pour l’analyse de résultats
  • Diffuser un outil d’analyse (chacun y met sa propre donnée)
  • Collecter de la donnée
  • etc…

Quelques liens utiles

Architecture d’une application Shiny

Une application Shiny comporte deux composants majeurs qui vont intéragir en permanence lors de l’utilisation :

  • la “UI”, pour “User Interface”- génère ce que l’on voit
  • le “SERVER” - fonction régissant ce qui se passe derrière

Architecture d’une application Shiny

shinyApp(

  ui = fluidPage(
    titlePanel("Bienvenue sur ta 1e application !"),
    sidebarLayout(
      sidebarPanel(
        strong("BARRE LATERALE"),
        br(),
        "C'est ici que vous pourrez rentrer les informations/instructions utilisées par l'application pour visualiser différents éléments"
      ),
      mainPanel(
        strong("PANNEAU PRINCIPAL:"),
        br(),
        "C'est là que seront représentées les sorties (graphiques, tableaux, texte, images etc.)"
    )
  )
  ),
  
  server = function(input, output) {}
  
)

Architecture d’une application Shiny

Plus pratique pour les grosses applications :

ui <- fluidPage(
  
  titlePanel("Bienvenue sur ta 1e application !"),
  sidebarLayout(
    sidebarPanel(
      strong("BARRE LATERALE"),
      br(),
      "C'est ici que vous pourrez rentrer les informations/instructions utilisées par l'application pour visualiser différents éléments"
      ),
    mainPanel(
      strong("PANNEAU PRINCIPAL:"),
      br(),
      "C'est là que seront représentées les sorties (graphiques, tableaux, texte, images etc.)"
      )
  )
)

server<- function(input, output) {}
shinyApp(ui, server)

Architecture d’une application Shiny

Un aperçu de ce que ça donne :

Parce qu’on est tous un petit peu ornithologues

#remotes::install_github("allisonhorst/palmerpenguins")
data(penguins,package = "palmerpenguins")
penguins <- penguins %>%
  rename(bill_l = bill_length_mm, bill_d = bill_depth_mm, flip_l = flipper_length_mm, bm = body_mass_g)
penguins %>%
  print(n=2)
## # A tibble: 344 x 8
##   species island    bill_l bill_d flip_l    bm sex     year
##   <fct>   <fct>      <dbl>  <dbl>  <int> <int> <fct>  <int>
## 1 Adelie  Torgersen   39.1   18.7    181  3750 male    2007
## 2 Adelie  Torgersen   39.5   17.4    186  3800 female  2007
## # … with 342 more rows

Parce qu’on est tous un petit peu ornithologues

Tronche de pingouin :

##       species          island        bill_l          bill_d     
##  Adelie   :152   Biscoe   :168   Min.   :32.10   Min.   :13.10  
##  Chinstrap: 68   Dream    :124   1st Qu.:39.23   1st Qu.:15.60  
##  Gentoo   :124   Torgersen: 52   Median :44.45   Median :17.30  
##                                  Mean   :43.92   Mean   :17.15  
##                                  3rd Qu.:48.50   3rd Qu.:18.70  
##                                  Max.   :59.60   Max.   :21.50  
##                                  NA's   :2       NA's   :2      
##      flip_l            bm           sex           year     
##  Min.   :172.0   Min.   :2700   female:165   Min.   :2007  
##  1st Qu.:190.0   1st Qu.:3550   male  :168   1st Qu.:2007  
##  Median :197.0   Median :4050   NA's  : 11   Median :2008  
##  Mean   :200.9   Mean   :4202                Mean   :2008  
##  3rd Qu.:213.0   3rd Qu.:4750                3rd Qu.:2009  
##  Max.   :231.0   Max.   :6300                Max.   :2009  
##  NA's   :2       NA's   :2

Parce qu’on est tous un petit peu ornithologues

Exemple de graph à partir duquel vous travaillerez: