R Language
Brillante
Buscar..
Crear una aplicación
Shiny es un paquete R desarrollado por RStudio que permite la creación de páginas web para mostrar interactivamente los resultados de un análisis en R.
Hay dos formas sencillas de crear una aplicación Shiny:
- en un archivo
.R
, o - en dos archivos:
ui.R
yserver.R
.
Una aplicación Shiny se divide en dos partes:
- ui : Un script de interfaz de usuario, que controla el diseño y la apariencia de la aplicación.
- servidor : un script de servidor que contiene código para permitir que la aplicación reaccione.
Un archivo
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)
Dos archivos
Crear archivo ui.R
library(shiny)
# Define UI for application
shinyUI(fluidPage(
# Application title
titlePanel("Hello World!")
))
Crear archivo server.R
library(shiny)
# Define server logic
shinyServer(function(input, output){})
Boton de radio
Puede crear un conjunto de botones de opción utilizados para seleccionar un elemento de una lista.
Es posible cambiar la configuración:
- seleccionado: el valor seleccionado inicialmente (carácter (0) para ninguna selección)
- en línea: horizontal o vertical
- anchura
También es posible añadir 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)
Grupo de casilla de verificación
Cree un grupo de casillas de verificación que se pueden usar para alternar múltiples opciones de forma independiente. El servidor recibirá la entrada como un vector de caracteres de los valores seleccionados.
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)
Es posible cambiar la configuración:
- etiqueta: título
- opciones: valores seleccionados
- seleccionado: el valor seleccionado inicialmente (NULL para ninguna selección)
- en línea: horizontal o vertical
- anchura
También es posible añadir HTML.
Seleccionar cuadro
Cree una lista de selección que se pueda usar para elegir uno o varios elementos de una lista de valores.
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)
Es posible cambiar la configuración:
- etiqueta: título
- opciones: valores seleccionados
- seleccionado: el valor seleccionado inicialmente (NULL para ninguna selección)
- múltiple: VERDADERO o FALSO
- anchura
- tamaño
- selectize: TRUE o FALSE (para uso o no selectize.js, cambie la pantalla)
También es posible añadir HTML.
Lanzar una aplicación Shiny
Puede iniciar una aplicación de varias maneras, dependiendo de cómo cree su aplicación. Si su aplicación está dividida en dos archivos ui.R
y server.R
o si toda su aplicación está en un solo archivo.
1. Dos archivos de aplicación.
Sus dos archivos ui.R
y server.R
tienen que estar en la misma carpeta. Luego, puede iniciar su aplicación ejecutando en la consola la función shinyApp()
y pasando la ruta del directorio que contiene la aplicación Shiny.
shinyApp("path_to_the_folder_containing_the_files")
También puede iniciar la aplicación directamente desde Rstudio presionando el botón Ejecutar aplicación que aparece en Rstudio cuando ui.R
un archivo ui.R
o server.R
.
O simplemente puede escribir runApp()
en la consola si su directorio de trabajo es el directorio de Shiny App.
2. Una aplicación de archivo
Si creas tu en un archivo R
, también puedes iniciarlo con la función shinyApp()
.
- dentro de su código:
library(shiny)
ui <- fluidPage() #Create the ui
server <- function(input, output){} #create the server
shinyApp(ui = ui, server = server) #run the App
- en la consola agregando una ruta a un archivo
.R
que contiene la aplicación Shiny con el archivo de aplicación deappFile
:
shinyApp(appFile="path_to_my_R_file_containig_the_app")
Widgets de control
Función | Widget |
---|---|
botón de acción | Botón de acción |
checkboxGroupInput | Un grupo de casillas de verificación. |
checkboxInput | Una sola casilla de verificación |
fecha de entrada | Un calendario para ayudar a la selección de la fecha. |
dateRangeInput | Un par de calendarios para seleccionar un rango de fechas. |
fileInput | Un asistente de control de carga de archivos |
texto de ayuda | Texto de ayuda que se puede agregar a un formulario de entrada |
entrada numérica | Un campo para introducir números. |
botones de radio | Un conjunto de botones de radio. |
seleccionar entrada | Un cuadro con opciones para elegir |
control deslizante | Una barra deslizante |
botón de enviar | Un boton de enviar |
entrada de texto | Un campo para ingresar texto |
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)
Depuración
debug()
y debugonce()
no funcionarán bien en el contexto de la mayoría de la depuración Shiny. Sin embargo, browser()
declaraciones del browser()
insertadas en lugares críticos pueden brindarle mucha información sobre cómo funciona (no) su código Shiny. Ver también: depuración usando browser()
Modo escaparate
El modo Showcase muestra su aplicación junto con el código que la genera y resalta las líneas de código en server.R a medida que las ejecuta.
Hay dos formas de habilitar el modo Showcase:
- Inicie la aplicación Shiny con el argumento display.mode = "showcase", por ejemplo,
runApp("MyApp", display.mode = "showcase")
. - Cree un archivo llamado
DESCRIPTION
en su carpeta de aplicaciones Shiny y agregue esta línea en él:DisplayMode: Showcase
.
Visualizador de registro reactivo
Reactivo Log Visualizer proporciona una herramienta interactiva basada en navegador para visualizar dependencias reactivas y ejecución en su aplicación. Para habilitar Reative Log Visualizer, ejecute las options(shiny.reactlog=TRUE)
en la consola R o agregue esa línea de código en su archivo server.R. Para iniciar Reative Log Visualizer, presione Ctrl + F3 en Windows o Command + F3 en Mac cuando su aplicación se está ejecutando. Use las teclas de flecha izquierda y derecha para navegar en Reative Log Visualizer.