Создание объектов вывода
В Shiny есть три правила для создания объекта вывода:
Создайте объект с помощью подходящей функции
render*().Сохраните результат функции render в список
output, который является параметром серверной функции. В частности, сохраните его вoutput$<outputId>, чтобы заменить заполнитель вывода в UI с идентификаторомoutputId.Если вывод зависит от значений, изменённых пользователем, обратиться к любому из них можно через параметр
inputсерверной функции. В частности,input$<inputId>всегда возвращает текущее значение поля ввода с идентификаторомinputId.
Это упражнение является частью курса
Примеры использования: создание веб-приложений с Shiny в R
Инструкции к упражнению
Вам дано приложение Shiny с полностью готовой частью UI. Ваша задача — реализовать весь вывод. А именно:
- Создайте график для набора данных
carsв заполнителе вывода с идентификатором "cars_plot" (строка 23). - В текстовом выводе "greeting" отобразите приветствие в формате "Hello 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)