Побудова об'єктів виводу
Є три правила створення виводу в Shiny:
Створіть об'єкт за допомогою відповідної функції
render*().Збережіть результат функції рендерингу у список
output, який є параметром серверної функції. Зокрема, збережіть його вoutput$<outputId>, щоб замінити у UI заповнювач виводу з ідентифікаторомoutputId.Якщо вивід залежить від будь-яких значень введення, змінених користувачем, ви можете отримати доступ до будь-якого з інпутів через параметр
inputсерверної функції. Зокрема,input$<inputId>завжди повертатиме поточне значення поля введення з ідентифікаторомinputId.
Ця вправа є частиною курсу
Case Studies: створення вебзастосунків із Shiny в R
Інструкції до вправи
Вам надано застосунок Shiny із повністю працездатною частиною UI. Ваше завдання — сконструювати всі виводи. Зокрема:
- Створіть графік набору даних
carsу заповнювачі для графіка з ID "cars_plot" (рядок 23). - У текстовому виводі "greeting" згенеруйте вітання у форматі "Hello NAME", де NAME — це значення інпуту name (рядок 28).
- У виводі "iris_table" покажіть таблицю перших n рядків набору даних
iris, де n — це значення числового інпуту (рядок 33).
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)