R Language
Brillante
Ricerca…
Crea un'app
Shiny è un pacchetto R sviluppato da RStudio che consente la creazione di pagine Web per visualizzare in modo interattivo i risultati di un'analisi in R.
Esistono due modi semplici per creare un'app Shiny:
- in un file
.R
, o - in due file:
ui.R
eserver.R
.
Un'app Shiny è divisa in due parti:
- ui : uno script dell'interfaccia utente, che controlla il layout e l'aspetto dell'applicazione.
- server : uno script server che contiene codice per consentire all'applicazione di reagire.
Un file
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)
Due file
Crea il file ui.R
library(shiny)
# Define UI for application
shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
Crea il file server.R
library(shiny)
# Define server logic
shinyServer(function(input, output){})
Pulsante radio
È possibile creare un set di pulsanti di opzione utilizzati per selezionare un elemento da un elenco.
È possibile modificare le impostazioni:
- selezionato: il valore inizialmente selezionato (carattere (0) per nessuna selezione)
- in linea: orizzontale o verticale
- larghezza
È anche possibile aggiungere 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)
Gruppo di caselle di controllo
Crea un gruppo di caselle di controllo che possono essere utilizzate per alternare più scelte in modo indipendente. Il server riceverà l'input come vettore di carattere dei valori selezionati.
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)
È possibile modificare le impostazioni:
- etichetta: titolo
- scelte: valori selezionati
- selezionato: il valore inizialmente selezionato (NULL per nessuna selezione)
- in linea: orizzontale o verticale
- larghezza
È anche possibile aggiungere HTML.
Seleziona la casella
Crea un elenco di selezione che può essere utilizzato per scegliere uno o più elementi da un elenco di valori.
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)
È possibile modificare le impostazioni:
- etichetta: titolo
- scelte: valori selezionati
- selezionato: il valore inizialmente selezionato (NULL per nessuna selezione)
- multiplo: VERO o FALSO
- larghezza
- taglia
- selectize: TRUE o FALSE (per utilizzare o non selectize.js, cambiare il display)
È anche possibile aggiungere HTML.
Avvia una app Shiny
Puoi avviare un'applicazione in diversi modi, a seconda di come crei la tua app. Se la tua app è divisa in due file ui.R
e server.R
o se tutta la tua app è in un unico file.
1. Un'app di due file
I tuoi due file ui.R
e server.R
devono trovarsi nella stessa cartella. È quindi possibile avviare l'app eseguendo nella console la funzione shinyApp()
e passando il percorso della directory che contiene l'app Shiny.
shinyApp("path_to_the_folder_containing_the_files")
Puoi anche avviare l'app direttamente da Rstudio premendo il pulsante Esegui app che appare su Rstudio quando ui.R
un file ui.R
o server.R
.
Oppure puoi semplicemente scrivere runApp()
sulla console se la tua directory di lavoro è la directory App Shiny.
2. Un'app di file
Se crei il tuo file R
in uno puoi anche shinyApp()
con la funzione shinyApp()
.
- all'interno del tuo codice:
library(shiny)
ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server
shinyApp(ui = ui, server = server) #run the App
- nella console aggiungendo il percorso a un file
.R
contenente l'applicazione Shiny con l'appFile
:
shinyApp(appFile="path_to_my_R_file_containig_the_app")
Controlla i widget
Funzione | widget |
---|---|
ActionButton | Pulsante di azione |
checkboxGroupInput | Un gruppo di caselle di controllo |
checkboxInput | Una singola casella di controllo |
dateinput | Un calendario per aiutare la selezione della data |
dateRangeInput | Una coppia di calendari per selezionare un intervallo di date |
FileInput | Una procedura guidata per il controllo del caricamento dei file |
Testo guida | Testo di aiuto che può essere aggiunto a un modulo di input |
numericInput | Un campo per inserire i numeri |
tasti della radio | Una serie di pulsanti radio |
selectInput | Una scatola con le opzioni tra cui scegliere |
sliderInput | Una barra di scorrimento |
submitButton | Un pulsante di invio |
l'immissione di testo | Un campo per inserire il testo |
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)
Debug
debug()
e debugonce()
non funzionano bene nel contesto della maggior parte del debugging di Shiny. Tuttavia, le dichiarazioni di browser()
inserite in punti critici possono fornire molte informazioni su come funziona (non) il codice di Shiny. Vedi anche: Debugging using browser()
Modalità Showcase
La modalità Showcase visualizza l'app accanto al codice che la genera e mette in evidenza le righe di codice nel server.R durante la sua esecuzione.
Ci sono due modi per abilitare la modalità Showcase:
- Avvia l'app Shiny con l'argomento display.mode = "showcase", ad es.
runApp("MyApp", display.mode = "showcase")
. - Crea un file chiamato
DESCRIPTION
nella cartella dell'app Shiny e aggiungi questa riga:DisplayMode: Showcase
.
Log Reactive Visualizer
Reactive Log Visualizer fornisce uno strumento interattivo basato su browser per la visualizzazione delle dipendenze reattive e dell'esecuzione nell'applicazione. Per attivare Reactive Log Visualizer, eseguire le options(shiny.reactlog=TRUE)
nella console R o aggiungere tale riga di codice nel file server.R. Per avviare Reactive Log Visualizer, premi Ctrl + F3 su Windows o Command + F3 su Mac quando la tua app è in esecuzione. Utilizzare i tasti freccia sinistra e destra per navigare in Reactive Log Visualizer.