ПочатиПочніть безкоштовно

Побудова об'єктів виводу

Є три правила створення виводу в Shiny:

  1. Створіть об'єкт за допомогою відповідної функції render*().

  2. Збережіть результат функції рендерингу у список output, який є параметром серверної функції. Зокрема, збережіть його в output$<outputId>, щоб замінити у UI заповнювач виводу з ідентифікатором outputId.

  3. Якщо вивід залежить від будь-яких значень введення, змінених користувачем, ви можете отримати доступ до будь-якого з інпутів через параметр 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)
Редагувати та запускати код