Académique Documents
Professionnel Documents
Culture Documents
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