НачатьНачать бесплатно

Создание объектов вывода

В Shiny есть три правила для создания объекта вывода:

  1. Создайте объект с помощью подходящей функции render*().

  2. Сохраните результат функции render в список output, который является параметром серверной функции. В частности, сохраните его в output$<outputId>, чтобы заменить заполнитель вывода в UI с идентификатором outputId.

  3. Если вывод зависит от значений, изменённых пользователем, обратиться к любому из них можно через параметр 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)
Редактировать и запускать код