Creare oggetti di output
Ci sono tre regole per costruire un output in Shiny:
Crea l'oggetto con la funzione
render*()appropriata.Salva il risultato della funzione di render nella lista
output, che è un parametro della funzione server. In particolare, salvalo inoutput$<outputId>per sostituire nel UI il segnaposto dell'output con IDoutputId.Se l'output dipende da valori di input modificati dall'utente, puoi accedere a qualsiasi input usando il parametro
inputdella funzione server. In particolare,input$<inputId>restituisce sempre il valore corrente del campo di input con IDinputId.
Questo esercizio fa parte del corso
Casi di studio: creare applicazioni web con Shiny in R
Istruzioni dell'esercizio
Ti viene fornita un'app Shiny con la parte UI completamente funzionante. Il tuo compito è costruire tutti gli output. In particolare:
- Crea un grafico del dataset
carsnel segnaposto di output del grafico con ID "cars_plot" (riga 23). - Nell'output di testo "greeting", visualizza un saluto della forma "Hello NAME", dove NAME è il valore dell'input name (riga 28).
- Nell'output "iris_table", mostra una tabella delle prime n righe del dataset
iris, dove n è il valore dell'input numerico (riga 33).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)