Konstruera utdataobjekt
Det finns tre regler för att bygga utdata i Shiny:
Bygg objektet med lämplig
render*()-funktion.Spara resultatet av render-funktionen i listan
output, som är en parameter i serverfunktionen. Spara det specifikt ioutput$<outputId>för att ersätta utdataplatshållaren i UI:t med IDoutputId.Om utdatan beror på användarändrade indatavärden kan du komma åt alla indata via parametern
inputi serverfunktionen. Mer specifikt returnerarinput$<inputId>alltid det aktuella värdet för inmatningsfältet med IDinputId.
Den här övningen är en del av kursen
Fallstudier: Bygg webbapplikationer med Shiny i R
Övningsinstruktioner
Du får en Shiny-app med en fullt fungerande UI-del. Din uppgift är att konstruera alla utdata. Mer specifikt:
- Skapa ett diagram över datamängden
carsi utdataplatshållaren för diagram med ID "cars_plot" (rad 23). - I textutdatan "greeting" renderar du en hälsningstext på formen "Hello NAME", där NAME är värdet från namnindatan (rad 28).
- I utdatan "iris_table" visar du en tabell med de första n raderna i datamängden
iris, där n är värdet från den numeriska indatan (rad 33).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)