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")
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:
- 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:
- 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:
Ahora, cambie el valor de entrada de 50 a 100 para ver qué sucede.
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:
- 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:
Aquí, la salida no cambia con los valores de entrada hasta que se active el botón de actualización.
- 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:
La salida se actualiza tan pronto como se hace clic en .
- 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:
- 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:
- 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:
- 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:
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