Está en la página 1de 2

1.

Estructura Cada app es una carpeta que funciones render*


Shiny
Hoja de contiene un archivo server.R y comúnmente un function espera crea
referencia archivo ui.R (opcionalmente contiene archivos extra) renderDataTable objetos como tablas tabla DataTables.js

lee mas en shiny.rstudio.com renderImage


renderPlot
lista atributos imagenes imagen HTML
gráfica gráfica
Shiny 0.10.0 Actualizado: 6/14 App se llama como el renderPrint
app-nombre nombre de la carpeta
salida impresa texto
renderTable objetos como tablas tabla simple
!
.r server.R renderText cadena de caracteres texto
!
.r ui.R (opcional) usado en
renderUI objeto “tag” o HTML elemento UI (HTML)
! DESCRIPTION modo “showcase”
! README valores de entrada (input) son reactivos.
(opcional) datos,
! <otros archivos> scripts, etc. Deben estar rodeados por uno de:
2. server.R Instrucciones que constituyen los " www render* - crea un componente shiny UI (interfaz)
componentes R de tu app. Para escribir server.R: reactive - crea una expresión reactiva
(opcional) carpeta de archivos para compartir observe - crea un observador reactivo
con el navegador (imágenes, CSS, .js, etc.)
Debe llamarse "www"
isolate - crea una copia no-reactiva de un objeto reactivo
•A Provee server.R con el mínimo de código necesario,
shinyServer(function(input, output) {}).
server.R
•B Define los componentes en R para tu app entre las 3. Ejecución Coloca código en el lugar
# carga paquetes, scripts, datos
llaves { } después de function(input, output). donde correrá la menor cantidad de veces
•C Guarda cada componente R destinados para tu A shinyServer(function(input, output) { B
interfaz (UI) como output$<nombre componente>. Corre una vez - código puesto fuera de shinyServer solo
# crea variables específicos para usuario corre una vez cuando inicias tu app. Úsalo para
•D Crea cada componente de salida con una función instrucciones generales. Crea una sola copia en memoria.
output$texto <- renderText({
render*.
input$titulo Corre una vez por usuario - código puesto dentro de
•E Dale a cada función render* el código R que el }) shinyServer corre una vez por cada usuario que visita tu app
servidor necesita para construir el componente. El D (o refresca su navegador). Úsalo para instrucciones que
C output$gráfica <- renderPlot({ necesitas dar por cada usuario del app. Crea una copia por
servidor notará valores reactivos que aparecen en el x <- mtcars[ , input$x] F
código y reconstruirá el componente cada vez que E cada usuario.
y <- mtcars[ , input$y]
estos valores cambian. plot(x, y, pch = 16) Corre a menudo - código puesto dentro de una función
}) render*, reactive, o observe correrá muchas veces. Úsalo
•F Has referencia a valores en “widgets” con
 solo para código que el servidor necesita para reconstruir un
input$<nombre del widget>. }) componente UI después de que un widget cambia.

reactive - usa reactive para crear isolate - usa isolate para usar una observe - usa observe para crear código
render* - Una salida se actualiza
4. Reactividad Cuando automáticamente cuando una entrada objetos que se usaran en múltiples
entrada sin dependencia. Shiny no
reconstruirá la salida cuando una
que corre cuando una entrada cambia,
pero que no crea un objeto de salida.
una entrada (input) cambia, el en su función render* cambia. salidas. entrada aislada cambia
servidor reconstruye cada
input$a
salida (output) que depende de output$y
input$a output$z input$a x output$z input$a observer
ella (también si la dependencia output$z input$b
es indirecta). Puedes controlar
este comportamiento a través x <- reactive({
input$a
de la cadena de dependencias. output$z <- renderText({ }) output$z <- renderText({ observe({
input$a paste( input$a
}) output$y <- renderText({ isolate(input$a), # código para correr
x() input$b })
RStudio® and Shiny™ son marcas registradas de RStudio, Inc. }) )
CC BY RStudio info@rstudio.com output$z <- renderText({ )
844-448-1212 rstudio.com x()
Traducido por Frans van Dunné • innovateonline.nl })
ui.R
5. ui.R Una descripción de la interfaz (UI) de tu app, la página web que muestra tu app.
A shinyUI(fluidPage( Para escribir ui.R:
titlePanel("datos mtcars"), • Incluye el mínimo de código necesario para ui.R, shinyUI(fluidPage())
A
B sidebarLayout( * nota: usa navbarPage en vez de fluidPage si quieres que tu app tenga múltiples páginas conectados con un navbar
sidebarPanel(
• Construye el plano para tu UI. sidebarLayout da una composición estándar cuando se usa con sidebarPanel y
B
C textInput("titulo", “titulo gráfica:", mainPanel. splitLayout, flowLayout, e inputLayout dividen la página en regiones equidistantes. fluidRow y column
value = "x v y"), trabajan juntos para crear planos basados en rejillas, que puedes usar para componer una página o panel. creates
sidebarLayout splitLayout flowLayout/inputPanel fluidRow
selectInput("x", “Escoge una var x:",
choices = names(mtcars),
selected = "disp"), objeto 1 objeto 2 objeto 3 column row col
side main objeto 1 objeto 2
selectInput("y", “Escoge una var y:", panel panel
choices = names(mtcars), objeto 3 column
selected = "mpg")
),
shinyUI(fluidPage(
mainPanel( fluidRow(
h3(textOutput("texto")), shinyUI(fluidPage( shinyUI(fluidPage( column(width = 4, …),
shinyUI(fluidPage(
splitLayout( flowLayout( column(width = 2,
plotOutput("plot") sidebarLayout(
numericInput(…),
sidebarPanel(…), numericInput(…), offset = 3, …),
) selectInput(…) selectInput(…), ),
mainPanel(…)
) ) ) sliderInput(…) fluidRow(
)) )) ) column(width = 12, …)
))
)) )
C En cada panel o columna pon… ))

Componentes R - Los objetos de salida que has • Widgets - El primer argumento de cada función de Elementos HTML - Añade elementos html con
definido en server.R. Para colocar un componente: widget es el <nombre> del widget. Puedes acceder a funciones shiny similares a etiquetas HTML comunes.
su valor actual en server.R con input$<nombre>
1. Selecciona la función *Output que construye el tipo de a tags$col tags$form tags$input tags$output tags$sub
tags$colgroup h1 tags$ins p tags$summary
objeto que quieres colocar en la UI. widget función argumentos comunes tags$abbr
tags$address tags$command h2 tags$kbd tags$param tags$sup
Botón de acción actionButton inputId, label tags$data h3 tags$keygen pre tags$table
2. Pasa la función *Output a una cadena de caracteres casilla checkboxInput inputId, label, value
tags$area
tags$article tags$datalist h4 tags$label tags$progress tags$tbody
correspondiente al nombre del objeto en server.R: grupo de casillas checkboxGroupInput inputId, label, choices, selected tags$aside
tags$audio
tags$dd
tags$del
h5
h6
tags$legend
tags$li
tags$q
tags$ruby
tags$td
tags$textarea
selección de fechas dateInput inputId, label, value, min, max, format tags$b tags$details tags$head tags$link tags$rp tags$tfoot
output$gráfica <- renderPlot({ ... }) plotOutput("gráfica") selección rango fechas dateRangeInput inputId, label, start, end, min, max, format tags$base tags$dfn tags$header tags$mark tags$rt tags$th
tags$bdi div tags$hgroup tags$map tags$s tags$thead
subir archivo fileInput inputId, label, multiple tags$samp tags$time
tags$dl hr tags$menu
funciones *Output campo numerico numericInput inputId, label, value, min, max, step
tags$bdo
tags$blockquote tags$dt HTML tags$meta tags$script tags$title
botón de selección em tags$i tags$meter tags$section tags$tr
dataTableOutput tableOutput radioButtons inputId, label, choices, selected tags$body
tags$embed tags$iframe tags$nav tags$select tags$track
casilla de selección inputId, label, choices, selected, multiple br
htmlOutput textOutput selectInput
tags$button tags$eventsource img tags$noscript tags$small tags$u
deslizador sliderInput inputId, label, min, max, value, step tags$fieldset includeCSS tags$object tags$source tags$ul
imageOutput uiOutput botón de envío
tags$canvas
tags$figcaption includeMarkdo tags$ol span tags$var
submitButton text tags$caption
plotOutput verbatimTextOutput campo de texto textInput inputId, label, value tags$cite tags$figure wn tags$optgroup strong tags$video
code tags$footer includeScript tags$option tags$style tags$wbr

6. Corre tu app 7. Comparte tu app Presenta tu app como una página web accesible en linea

runApp - corre archivos locales


runGitHub - corre archivos alojados en www.GitHub.com
ShinyApps.io Shiny Server Shiny Server Pro
runGist - corre archivos guardados como gist (gist.github.com) Aloja tus apps en el servidor Construye to propio servidor Construye un servidor
runURL - corre archivos guardado en algún URL comercial con autenticación,
de RStudio. Opciones gratis y linux para alojar apps. Gratis y de
RStudio® and Shiny™ are trademarks of RStudio, Inc.
pagas. código abierto. gestión de recursos y más.
CC BY RStudio info@rstudio.com
844-448-1212 rstudio.com
www.shinyapps.io shiny.rstudio.com/deploy shiny.rstudio.com/deploy
Traducido por Frans van Dunné • innovateonline.nl

También podría gustarte