Construir objetos de salida
Hay tres reglas para construir una salida en Shiny:
Crea el objeto con la función
render*()adecuada.Guarda el resultado de la función de renderizado en la lista
output, que es un parámetro de la funciónserver. En concreto, guárdalo enoutput$<outputId>para sustituir el marcador de posición de la interfaz con IDoutputId.Si la salida depende de valores de entrada modificados por el usuario, puedes acceder a cualquiera de las entradas usando el parámetro
inputde la funciónserver. En concreto,input$<inputId>siempre devolverá el valor actual del campo de entrada con IDinputId.
Este ejercicio forma parte del curso
Casos prácticos: crea aplicaciones web con Shiny en R
Instrucciones del ejercicio
Se te proporciona una app de Shiny con toda la parte de la interfaz ya funcional. Tu tarea es construir todas las salidas. En concreto:
- Crea un gráfico del conjunto de datos
carsen el marcador de posición de salida de gráfico con ID "cars_plot" (línea 23). - En la salida de texto "greeting", renderiza un saludo con el formato "Hello NAME", donde NAME es el valor de la entrada de nombre (línea 28).
- En la salida "iris_table", muestra una tabla con las primeras n filas del conjunto de datos
iris, donde n es el valor de la entrada numérica (línea 33).
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Load the shiny package
library(shiny)
# Define UI for the application
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput("name", "What is your name?", "Dean"),
numericInput("num", "Number of flowers to show data for",
10, 1, nrow(iris))
),
mainPanel(
textOutput("greeting"),
plotOutput("cars_plot"),
tableOutput("iris_table")
)
)
)
# Define the server logic
server <- function(input, output) {
# Create a plot of the "cars" dataset
output$cars_plot <- render___({
plot(cars)
})
# Render a text greeting as "Hello "
output$greeting <- ___({
paste("Hello", ___)
})
# Show a table of the first n rows of the "iris" data
___ <- ___({
data <- iris[1:input$num, ]
data
})
}
# Run the application
shinyApp(ui = ui, server = server)