Paquete Shiny en Programación R

El paquete es una forma adecuada de organizar el trabajo y compartirlo con los demás. Los paquetes en el lenguaje de programación R son una colección de funciones R, código compilado y datos de muestra. Se almacenan en un directorio llamado «biblioteca» en el entorno R. De forma predeterminada, R instala un conjunto de paquetes durante la instalación. Uno de los paquetes más importantes de R es el paquete Shiny . Shiny es un paquete R que facilita la creación de aplicaciones web interactivas directamente desde R. Ayuda a alojar aplicaciones independientes en una página web o incrustarlas en documentos R Markdown o crear paneles. También se pueden ampliar las aplicaciones Shiny con temas CSS, widgets html y acciones JavaScript.

Paquete brillante Instalar en lenguaje R

Para usar un paquete en la programación R, primero debe instalar el paquete. Esta tarea se puede realizar mediante el comando . Para instalar todo el paquete Shiny , escriba esto:

install.packages("shiny")

Shiny_installation

Para instalar las compilaciones de desarrollo más recientes directamente desde GitHub , ejecute esto en su lugar:

if (!require("remotes"))
  install.packages("remotes")
remotes::install_github("rstudio/shiny")

Paquete brillante en lenguaje R Ejemplo

Funciones verbales importantes en paquete brillante

  • fluidPage(): Crea una página con un diseño fluido. Un diseño de página fluido consiste en filas que a su vez incluyen columnas. Las filas existen con el propósito de asegurarse de que sus elementos aparezcan en la misma línea y las columnas existen con el propósito de definir cuánto espacio horizontal dentro de una cuadrícula de 12 unidades de ancho. Las páginas fluidas escalan sus componentes en tiempo real para llenar todo el ancho del navegador disponible.

   Sintaxis:

   fluidPage(…, título = NULL, tema = NULL)

Parámetro

Descripción

Elementos a incluir dentro de la página.
título El título de la ventana del navegador.
tema Hoja de estilo Bootstrap alternativa.

Ejemplo:

Esta es una plantilla de aplicación brillante básica. 

R

# import shiny package
library(shiny)
 
# define a page with fluid layout
ui <- fluidPage(h1("GeeksforGeeks article on shiny package in R"),
                p(style = "font-family:Impact", "My first shiny app")
)
server <- function(input, output) {}
 
shinyApp(ui = ui, server = server)

 
Producción:

FluidPage

  • shinyApp(): crea objetos de aplicación Shiny a partir de un par explícito de interfaz de usuario/servidor o sin pasar por la ruta de un directorio que contiene una aplicación Shiny.

   Sintaxis:

   shinyApp(ui, servidor, onStart = NULL, opciones = list(), uiPattern = “/”, enableBookmarking = NULL)

   shinyAppDir(appDir, opciones = lista())

   shinyAppFile(appFile, opciones = lista())</p 
 

Parámetro

Descripción

interfaz de usuario La definición de la interfaz de usuario de la aplicación.
servidor

Tiene tres parámetros: entrada, salida y sesión.

Se llama una vez para cada sesión para garantizar que cada aplicación sea independiente.

en Inicio Una función que se llamará antes de que se ejecute la aplicación.
opciones Opciones que deben pasarse a runApp.
patrón de interfaz de usuario

Una expresión regular que se aplicará a cada 

Solicitud GET para determinar si se debe usar la interfaz de usuario para manejar la solicitud.

habilitar marcadores Puede ser «url», «servidor» o «deshabilitar». El valor predeterminado es NULL.
appDir Ruta al directorio que contiene una aplicación Shiny.
archivo de aplicación Ruta a un archivo .R que contiene una aplicación Shiny.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
  sliderInput(inputId = "num",
              label = "Choose a number",
              value = 10, min = 1, max = 1000),
  plotOutput("hist")
)
 
server <- function(input, output)
{
  output$hist <- renderPlot({
    hist(rnorm(input$num))
  })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui = ui, server = server)

 Producción:

shinyApp

  • reactivo(): Crea una expresión reactiva. Una expresión reactiva es una expresión cuyo resultado cambiará con el tiempo. Reactive() envuelve una expresión normal para crear una expresión reactiva.

   Sintaxis: reactivo (x, env = parent.frame(), citado = FALSO, etiqueta = NULL)

Parámetro

Descripción

X Una expresión.
env El entorno principal para la expresión reactiva.
citado

¿Se cita la expresión? Por defecto, esto es FALSO. 

Esto es útil cuando desea utilizar una expresión que se almacena en una variable

etiqueta Una etiqueta para la expresión reactiva.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
  textInput(inputId = "num", label = "Choose a number",
            value = "", width = 100, placeholder = NULL),
  plotOutput("hist"),
  verbatimTextOutput("stats")
)
server <- function(input, output)
{
  # use reactive to create
  # a reactive expression
  data <- reactive({rnorm(input$num)})
   
  output$hist <- renderPlot({hist(data())})
  output$stats <- renderPrint({summary(data())})
}
 
# create shiny app object
# using shinyApp
shinyApp(ui = ui, server = server)

Producción:

reactive_50

Ahora, cambie el valor de entrada de 50 a 100 para ver qué sucede.

reactive_100

Los valores de salida (histograma y resumen) también cambian con la alternancia de los valores de entrada, es decir, la aplicación tiene reactividad.

  • observeEvent(): activa el código para que se ejecute en los servidores. Responda a entradas, valores y expresiones reactivas «similares a eventos».

Sintaxis:

observeEvent(eventExpr, handlerExpr, event.env = parent.frame(), event.quoted = FALSE, handler.env = parent.frame(), handler.quoted = FALSE, label = NULL, suspendido = FALSE, prioridad = 0, dominio = getDefaultReactiveDomain(), autoDestroy = TRUE, ignoreNULL = TRUE, ignoreInit = FALSE, once = FALSE)

Parámetro

Descripción

EventExpr

Una expresión que representa el evento. Puede ser

 una expresión reactiva simple o compleja.

manejador.Expr La expresión a llamar cada vez que se invalida eventExpr.
evento.env

El entorno padre para eventExpr. 

De forma predeterminada, este es el entorno de llamada.

evento.citado

Devuelve si la expresión eventExpr está entrecomillada o no.

 Por defecto, esto es FALSO.

handler.env El entorno principal para handlerExpr. De forma predeterminada, este es el entorno de llamada.
manejador.citado

Devuelve si la expresión handlerExpr está entrecomillada o no.

 Por defecto, esto es FALSO.

etiqueta Una etiqueta para el observador o reactivo
suspendido Si es VERDADERO, inicia el observador en un estado suspendido.
prioridad

Un número entero o numérico que controla la prioridad 

con el que se debe ejecutar este observador. Se permiten valores Positivo, Negativo y Cero.

autodestruir

Si es VERDADERO (por defecto), el observador será automáticamente 

destruido cuando finalice su dominio (si lo hubiere).

ignorarNULL Si la acción debe activarse cuando la entrada es NULL.
ignoreInit

Si es VERDADERO, entonces, cuando este evento de observación se crea/inicializa por primera vez,

ignorar el handlerExpr (el segundo argumento), ya sea

 de lo contrario, se supone que debe ejecutarse o no. El valor predeterminado es falso.

una vez

Si este observeEvent debe destruirse inmediatamente después

 la primera vez que se ejecuta el código en handlerExpr.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui = fluidPage(
  textInput(inputId = "num",
            label = "Enter a numeric value", value = "10"),
            actionButton("button", "Calculate"),
  column(8, tableOutput("table"))
)
 
server = function(input, output)
{
  # Take an action every time button is pressed
  observeEvent(input$button, {
    cat("Showing", input$num, "rows\n")
  })
   
  # Take a reactive dependency
  # on input$num, but not on any
  # of the stuff inside the function
  df <- eventReactive(input$button, {
    head(cars, input$num)
  })
  output$table <- renderTable({
    df()
  })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui, server)

Producción:

observeEventobserveEvent

  • eventReactive(): una expresión reactiva que solo responde a valores específicos. Responda a entradas, valores y expresiones reactivas «similares a eventos».

Sintaxis:

eventReactive(eventExpr, 
valueExpr, 
event.env = parent.frame(), 
event.quoted = FALSE, 
value.env = parent.frame(), 
value.quoted = FALSE, 
label = NULL, 
domain = getDefaultReactiveDomain(), 
ignoreNULL = VERDADERO, 
ignoreInit = FALSO)

Parámetro

Descripción

EventExpr Una expresión que representa el evento. Puede ser una expresión reactiva simple o compleja.
valueExpr Produce el valor de retorno de eventReactive. Se ejecutará dentro de un ámbito de aislamiento().
evento.env El entorno padre para eventExpr. De forma predeterminada, este es el entorno de llamada.
evento.citado Devuelve si la expresión eventExpr está entrecomillada o no. Por defecto, esto es FALSO.
valor.env El entorno padre para valueExpr. De forma predeterminada, este es el entorno de llamada.
valor.cotizado Devuelve si la expresión valueExpr está entrecomillada o no. Por defecto, esto es FALSO.
ignorarNULL Si la acción debe activarse cuando la entrada es NULL.
ignoreInit

Si es VERDADERO, entonces, cuando este evento de observación se crea/inicializa por primera vez,

 ignorar el handlerExpr (el segundo argumento), ya sea

 de lo contrario, se supone que debe ejecutarse o no. El valor predeterminado es falso.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
  sliderInput(inputId = "num",
              label = "Choose a number",
              value = 25, min = 1, max = 100),
  actionButton(inputId = "go",
               label = "Update"),
  plotOutput("hist")
)
 
server <- function(input, output)
{
  data <- eventReactive(input$go, {
    rnorm(input$num)
  })
   
  output$hist <- renderPlot({
    hist(data())
  })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui = ui, server = server)

 Producción:

eventReactive

Aquí, la salida no cambia con los valores de entrada hasta que se active el botón de actualización.

eventReactive

  • actionButton(): Crea un botón de acción o un enlace. Su valor inicial es cero y aumenta en uno cada vez que se presiona.

   Sintaxis:

   actionButton(inputId, etiqueta, icono = NULL, ancho = NULL, …)

   actionLink(inputId, etiqueta, icono = NULL, …)

Parámetro

Descripción

ID de entrada La ranura de entrada que se utilizará para acceder al valor.
etiqueta El contenido del botón o enlace.
icono Un icono opcional() que aparecerá en el botón.
ancho El ancho de la entrada (por ejemplo, ‘200px’ o ‘100%’).
…. Atributos con nombre que se aplicarán al botón o vínculo.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
  sliderInput("obs", "Number of observations", 0, 1000, 500),
  actionButton("goButton", "Go!", class = "btn-success"),
  plotOutput("distPlot")
)
 
server <- function(input, output)
{
  output$distPlot <- renderPlot({
    input$goButton
    dist <- isolate(rnorm(input$obs))
    hist(dist)
  })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui, server)

 Producción:

actionButton

La salida se actualiza tan pronto como se hace clic en .

actionButton

  • checkboxGroupInput(): crea 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.

Sintaxis:

checkboxGroupInput(inputId, etiqueta, opciones = NULL, seleccionado = NULL, en línea = FALSO, ancho = NULL, choiceNames = NULL, choiceValues ​​= NULL)

Parámetro

Descripción

ID de entrada La ranura de entrada que se utilizará para acceder al valor.
etiqueta El contenido del botón o enlace.
opciones

Lista de valores para mostrar casillas de verificación. Si elementos de 

la lista se nombra, entonces ese nombre en lugar del valor se muestra al usuario.

seleccionado La selección inicial.
en línea Si es VERDADERO, representa las opciones horizontalmente.
ancho El ancho de la entrada (por ejemplo, ‘200px’ o ‘100%’).
valores de elección, nombres de elección Lista de nombres y valores.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
  checkboxGroupInput("icons", "Choose icons:",
                     choiceNames =
                       list(icon("dog"), icon("cat"),
                            icon("fish"), icon("bug")),
                     choiceValues =
                       list("dog", "cat", "fish", "bug")),
                     textOutput("txt")
)
 
server <- function(input, output, session)
{
  output$txt <- renderText({
    icons <- paste(input$icons, collapse = ", ")
    paste("You chose", icons)
  })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui = ui, server = server)

 Producción:

checkboxGroupInput

  • textInput(): Crea una etiqueta de entrada de texto.

   Sintaxis:

   textInput(inputId, etiqueta, valor = “”, ancho = NULL, marcador de posición = NULL)

Parámetro

Descripción

ID de entrada La ranura de entrada que se utilizará para acceder al valor.
etiqueta El contenido del botón o enlace.
valor El valor inicial.
ancho El ancho de la entrada (por ejemplo, ‘200px’ o ‘100%’).
marcador de posición Una string de caracteres que le da al usuario una pista sobre lo que se puede ingresar en el control.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
  textInput("txt", "Enter your text here", "Empty"),
  verbatimTextOutput("value")
)
 
server <- function(input, output)
{
  output$value <- renderText({ input$text })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui, server)

 Producción:

textInput

  • textOutput(): Crea un elemento de salida de texto. Representar una variable de salida reactiva como texto dentro de una página de aplicación.

   Sintaxis:

   textOutput(outputId, container = if (inline) span else div, inline = FALSE)

Parámetro

Descripción

ID de salida La variable de salida desde la que se lee el valor.
envase Una función para generar un elemento HTML para contener el texto.
en línea Use un contenedor en línea (span()) o de bloque (div()) para la salida.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
 textInput(inputId = "Name", label = "Enter your name"),
 textOutput("txt")
)
 
server <- function(input, output, session)
{
  output$txt <- renderText({
    Name <- paste(input$Name, collapse = ", ")
    paste("Welcome! to geeksforgeeks ", Name)
  })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui = ui, server = server)

 Producción:

textOutput

  • wellPanel(): crea un panel con un borde ligeramente insertado y un fondo gris.

   Sintaxis: wellPanel(…)

Parámetro

Descripción

Elementos de la interfaz de usuario para incluir dentro del panel.

Ejemplo:

R

# import shiny package
library(shiny)
 
# define fluid page layout
ui <- fluidPage(
    sliderInput(inputId = "num",
                label = "Choose a number",
                value = 25, min = 1, max = 100),
   
 # define plot inside
 # a wellPanel
 wellPanel(plotOutput("hist"))
)
 
server <- function(input, output)
{
  output$hist <- renderPlot({
    hist(rnorm(input$num), main = input$title)
  })
}
 
# create shiny app object
# using shinyApp
shinyApp(ui = ui, server = server)

 Producción: 

wellPanel

Observe que el histograma se encuentra dentro de un cuadro de color gris (wellPanel).

Publicación traducida automáticamente

Artículo escrito por misraaakash1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *