Looking for shiny Answers? Try Ask4KnowledgeBase
Looking for shiny Keywords? Try Ask4Keywords

shinyEmpezando con brillante


Observaciones

Esta sección proporciona una descripción general de qué es el brillo y por qué un desarrollador puede querer usarlo.

También debe mencionar los temas grandes dentro de los brillantes, y vincular a los temas relacionados. Dado que la Documentación para brillos es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.

Incluyendo parcelas

La forma más sencilla de incluir gráficos en su shinyApp es usar plotOutput en la interfaz de renderPlot y renderPlot en el servidor. Esto funcionará con gráficos base así como con ggPlot s

library(shiny)
library(ggplot2)

ui <- fluidPage(
  plotOutput('myPlot'),
  plotOutput('myGgPlot')
)

server <- function(input, output, session){
  output$myPlot = renderPlot({
    hist(rnorm(1000))
  })
  output$myGgPlot <- renderPlot({
    ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) + geom_point()
  })
}

shinyApp(ui, server)
 

Incluyendo mesas

Las tablas se incluyen más fácilmente con el paquete DT , que es una interfaz R para la biblioteca de JavaScript DataTables.

library(shiny)
library(DT)

ui <- fluidPage(
  dataTableOutput('myTable')
)

server <- function(input, output, session){
  output$myTable <- renderDataTable({
    datatable(iris)
  })
}

shinyApp(ui, server)
 

Instalación o configuración

Shiny puede ejecutarse como una aplicación independiente en su computadora local, en un servidor que puede proporcionar aplicaciones brillantes a múltiples usuarios (usando el servidor de shiny), o en shinyapps.io .

  1. Instalar Shiny en una computadora local: en R / RStudio, ejecute install.packages("shiny") si está instalando desde CRAN, o devtools::install_github("rstudio/shiny") si está instalando desde el repositorio RStudio Github. El repositorio Github aloja una versión de desarrollo de Shiny que posiblemente tenga más funciones en comparación con la versión CRAN, pero también puede ser inestable.

Aplicación simple

Cada aplicación shiny contiene dos partes: una definición de interfaz de usuario ( UI ) y un script de server ( server ). Este ejemplo muestra cómo se puede imprimir "Hola mundo" desde la interfaz de usuario o desde el servidor.

IU.R

En la interfaz de usuario puede colocar algunos objetos de vista (div, entradas, botones, etc.).

library(shiny)

# Define UI for application print "Hello world" 
shinyUI(

  # Create bootstrap page 
  fluidPage(
    
    # Paragraph "Hello world"
    p("Hello world"),

    # Create button to print "Hello world" from server
    actionButton(inputId = "Print_Hello", label = "Print_Hello World"),

    # Create position for server side text
    textOutput("Server_Hello")
    
  )
)
 

Servidor.R

En el script del servidor puede definir métodos que manipulan datos o escuchan acciones.

# Define server logic required to print "Hello World" when button is clicked
shinyServer(function(input, output) {
  
  # Create action when actionButton is clicked
  observeEvent(input$Print_Hello,{

    # Change text of Server_Hello
    output$Server_Hello = renderText("Hello world from server side")
  })
  
  
})
 

¿Como correr?

Puede ejecutar su aplicación de varias maneras:

  1. Cree dos archivos diferentes y colóquelos en un directorio, luego use runApp('your dir path')
  2. Puede definir dos variables (ui y servidor, por ejemplo) y luego usar shinyApp(ui,server) para ejecutar su aplicación

Resultado

En este ejemplo verá un texto y un botón:

captura de pantalla antes de hacer clic

Y después de hacer clic en el botón el servidor responde:

captura de pantalla después de hacer clic

¿Cuándo usaría el brillo?

  1. Tengo algunos análisis de datos realizados sobre algunos datos y tengo muchas personas 'no codificadas' en el equipo, que tienen datos similares a los míos y tienen requisitos de análisis similares. En tales casos, puedo crear una aplicación web con brillos, que toma archivos de datos de entrada específicos del usuario y genera análisis.
  2. Necesito compartir datos analizados o diagramas relevantes con otros en el equipo. Las aplicaciones web brillantes pueden ser útiles en tales situaciones.
  3. No tengo experiencia significativa con la programación de aplicaciones web, pero necesito ensamblar rápidamente una interfaz simple. Brillante para el rescate con una interfaz de usuario sencilla y elementos de servidor y codificación mínima.
  4. Los elementos interactivos permiten a los usuarios explorar qué elemento de los datos es relevante para ellos. Por ejemplo, puede tener datos cargados para toda la compañía, pero tiene un menú desplegable por departamento como "Ventas", "Producción", "Finanzas" que puede resumir los datos de la forma en que los usuarios desean verlos. La alternativa sería producir un enorme paquete de informes con análisis para cada departamento, pero solo leen su capítulo y el total.