Construirea obiectelor de ieșire
Există trei reguli pentru a construi un element de ieșire în Shiny:
Construiește obiectul cu funcția
render*()corespunzătoare.Salvează rezultatul funcției de redare în lista
output, care este un parametru al funcției server. Mai exact, salvează-l înoutput$<outputId>, pentru a înlocui marcatorul de poziție din UI care are ID-uloutputId.Dacă elementul de ieșire depinde de valori introduse de utilizator, le poți accesa prin parametrul
inputal funcției server. Mai exact,input$<inputId>va returna întotdeauna valoarea curentă a câmpului de intrare cu ID-ulinputId.
Acest exercițiu face parte din cursul
Studii de caz: Construirea aplicațiilor web cu Shiny în R
Instrucțiuni pentru exercițiu
Ai la dispoziție o aplicație Shiny cu o interfață UI complet funcțională. Sarcina ta este să construiești toate elementele de ieșire. Mai exact:
- Creează un grafic al setului de date
carsîn marcatorul de poziție pentru grafice cu ID-ul "cars_plot" (linia 23). - În elementul de ieșire text "greeting", redă un mesaj de salut de forma "Hello NAME", unde NAME este valoarea din câmpul de intrare pentru nume (linia 28).
- În elementul de ieșire "iris_table", afișează un tabel cu primele n rânduri din setul de date
iris, unde n este valoarea din câmpul de intrare numeric (linia 33).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)