R Language
Brillant
Recherche…
Créer une application
Shiny est un package R développé par RStudio qui permet la création de pages Web pour afficher de manière interactive les résultats d'une analyse dans R.
Il existe deux méthodes simples pour créer une application Shiny:
- dans un fichier
.R
ou - en deux fichiers:
ui.R
etserver.R
.
Une application Shiny est divisée en deux parties:
- ui : Un script d'interface utilisateur contrôlant la mise en page et l'apparence de l'application.
- serveur : script de serveur contenant du code pour permettre à l'application de réagir.
Un fichier
library(shiny)
# Create the UI
ui <- shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
# Create the server function
server <- shinyServer(function(input, output){})
# Run the app
shinyApp(ui = ui, server = server)
Deux fichiers
Créer ui.R
fichier ui.R
library(shiny)
# Define UI for application
shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
Créer server.R
fichier server.R
library(shiny)
# Define server logic
shinyServer(function(input, output){})
Bouton radio
Vous pouvez créer un ensemble de boutons radio utilisés pour sélectionner un élément dans une liste.
Il est possible de modifier les paramètres:
- selected: La valeur initialement sélectionnée (caractère (0) pour aucune sélection)
- en ligne: horizontale ou verticale
- largeur
Il est également possible d'ajouter du HTML.
library(shiny)
ui <- fluidPage(
radioButtons("radio",
label = HTML('<FONT color="red"><FONT size="5pt">Welcome</FONT></FONT><br> <b>Your favorite color is red ?</b>'),
choices = list("TRUE" = 1, "FALSE" = 2),
selected = 1,
inline = T,
width = "100%"),
fluidRow(column(3, textOutput("value"))))
server <- function(input, output){
output$value <- renderPrint({
if(input$radio == 1){return('Great !')}
else{return("Sorry !")}})}
shinyApp(ui = ui, server = server)
Groupe de cases à cocher
Créez un groupe de cases à cocher pouvant être utilisé pour basculer plusieurs choix indépendamment. Le serveur recevra l'entrée en tant que vecteur de caractère des valeurs sélectionnées.
library(shiny)
ui <- fluidPage(
checkboxGroupInput("checkGroup1", label = h3("This is a Checkbox group"),
choices = list("1" = 1, "2" = 2, "3" = 3),
selected = 1),
fluidRow(column(3, verbatimTextOutput("text_choice")))
)
server <- function(input, output){
output$text_choice <- renderPrint({
return(paste0("You have chosen the choice ",input$checkGroup1))})
}
shinyApp(ui = ui, server = server)
Il est possible de modifier les paramètres:
- label: titre
- choix: valeurs sélectionnées
- selected: La valeur initialement sélectionnée (NULL pour aucune sélection)
- en ligne: horizontale ou verticale
- largeur
Il est également possible d'ajouter du HTML.
Sélectionnez la case
Créez une liste de sélection qui peut être utilisée pour choisir un ou plusieurs éléments dans une liste de valeurs.
library(shiny)
ui <- fluidPage(
selectInput("id_selectInput",
label = HTML('<B><FONT size="3">What is your favorite color ?</FONT></B>'),
multiple = TRUE,
choices = list("red" = "red", "green" = "green", "blue" = "blue", "yellow" = "yellow"),
selected = NULL),
br(), br(),
fluidRow(column(3, textOutput("text_choice"))))
server <- function(input, output){
output$text_choice <- renderPrint({
return(input$id_selectInput)})
}
shinyApp(ui = ui, server = server)
Il est possible de modifier les paramètres:
- label: titre
- choix: valeurs sélectionnées
- selected: La valeur initialement sélectionnée (NULL pour aucune sélection)
- multiple: VRAI ou FAUX
- largeur
- Taille
- selectize: TRUE ou FALSE (pour utiliser ou non selectize.js, changer l'affichage)
Il est également possible d'ajouter du HTML.
Lancer une application Shiny
Vous pouvez lancer une application de plusieurs manières, en fonction de la manière dont vous créez votre application. Si votre application est divisée en deux fichiers ui.R
et server.R
ou si toute votre application est dans un seul fichier.
1. Deux fichiers app
Vos deux fichiers ui.R
et server.R
doivent être dans le même dossier. Vous pouvez ensuite lancer votre application en exécutant dans la console la fonction shinyApp()
et en passant le chemin du répertoire contenant l'application Shiny.
shinyApp("path_to_the_folder_containing_the_files")
Vous pouvez également lancer l'application directement depuis Rstudio en appuyant sur le bouton Exécuter l'application qui apparaît sur Rstudio lorsque vous ui.R
un fichier ui.R
ou server.R
.
Ou vous pouvez simplement écrire runApp()
sur la console si votre répertoire de travail est le répertoire Shiny App.
2. Une application de fichier
Si vous créez votre fichier R
dans un fichier, vous pouvez également le lancer avec la fonction shinyApp()
.
- à l'intérieur de votre code:
library(shiny)
ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server
shinyApp(ui = ui, server = server) #run the App
- dans la console en ajoutant le chemin d'accès à un fichier
.R
contenant l'application Shiny avec le paramètreappFile
:
shinyApp(appFile="path_to_my_R_file_containig_the_app")
Contrôle des widgets
Fonction | Widget |
---|---|
actionButton | Bouton d'action |
checkboxGroupInput | Un groupe de cases à cocher |
checkboxInput | Une seule case à cocher |
dateInput | Un calendrier pour faciliter la sélection des dates |
dateRangeInput | Une paire de calendriers pour sélectionner une plage de dates |
fichierInput | Un assistant de contrôle de téléchargement de fichier |
Texte d'aide | Texte d'aide pouvant être ajouté à un formulaire de saisie |
numericInput | Un champ pour entrer des nombres |
radioBoutons | Un ensemble de boutons radio |
selectInput | Une boîte avec des choix à sélectionner |
sliderInput | Un curseur |
bouton de soumission | Un bouton de soumission |
saisie de texte | Un champ pour saisir du texte |
library(shiny)
# Create the UI
ui <- shinyUI(fluidPage(
titlePanel("Basic widgets"),
fluidRow(
column(3,
h3("Buttons"),
actionButton("action", label = "Action"),
br(),
br(),
submitButton("Submit")),
column(3,
h3("Single checkbox"),
checkboxInput("checkbox", label = "Choice A", value = TRUE)),
column(3,
checkboxGroupInput("checkGroup",
label = h3("Checkbox group"),
choices = list("Choice 1" = 1,
"Choice 2" = 2, "Choice 3" = 3),
selected = 1)),
column(3,
dateInput("date",
label = h3("Date input"),
value = "2014-01-01"))
),
fluidRow(
column(3,
dateRangeInput("dates", label = h3("Date range"))),
column(3,
fileInput("file", label = h3("File input"))),
column(3,
h3("Help text"),
helpText("Note: help text isn't a true widget,",
"but it provides an easy way to add text to",
"accompany other widgets.")),
column(3,
numericInput("num",
label = h3("Numeric input"),
value = 1))
),
fluidRow(
column(3,
radioButtons("radio", label = h3("Radio buttons"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3),selected = 1)),
column(3,
selectInput("select", label = h3("Select box"),
choices = list("Choice 1" = 1, "Choice 2" = 2,
"Choice 3" = 3), selected = 1)),
column(3,
sliderInput("slider1", label = h3("Sliders"),
min = 0, max = 100, value = 50),
sliderInput("slider2", "",
min = 0, max = 100, value = c(25, 75))
),
column(3,
textInput("text", label = h3("Text input"),
value = "Enter text..."))
)
))
# Create the server function
server <- shinyServer(function(input, output){})
# Run the app
shinyApp(ui = ui, server = server)
Le débogage
debug()
et debugonce()
ne fonctionneront pas bien dans le contexte de la plupart des débogages Shiny. Cependant, browser()
instructions browser()
insérées dans des endroits critiques peuvent vous donner une idée de la manière dont votre code Shiny ne fonctionne pas. Voir aussi: Débogage à l'aide du browser()
Mode vitrine
Le mode Showcase affiche votre application à côté du code qui la génère et met en évidence les lignes de code dans server.R au fur et à mesure de leur exécution.
Il existe deux manières d’activer le mode Showcase:
- Lancez l'application Shiny avec l'argument display.mode = "showcase", par exemple,
runApp("MyApp", display.mode = "showcase")
. - Créez le fichier nommé
DESCRIPTION
dans votre dossier d'application Shiny et ajoutez-y cette ligne:DisplayMode: Showcase
.
Visualiseur de journal réactif
Reactive Log Visualizer fournit un outil interactif basé sur un navigateur pour visualiser les dépendances réactives et leur exécution dans votre application. Pour activer Reactive Log Visualizer, exécutez les options(shiny.reactlog=TRUE)
dans la console R et ajoutez cette ligne de code dans votre fichier server.R. Pour démarrer Reactive Log Visualizer, appuyez sur Ctrl + F3 sous Windows ou sur Commande + F3 sous Mac lorsque votre application est en cours d'exécution. Utilisez les touches fléchées gauche et droite pour naviguer dans le visualiseur de journal réactif.