Вхідні дані та виходи

Case Studies: створення вебзастосунків із Shiny в R

Dean Attali

Shiny Consultant

Входи

Case Studies: створення вебзастосунків із Shiny в R

Входи

chapter1_2_inputs_and_outputs.005.png

Case Studies: створення вебзастосунків із Shiny в R

Входи

chapter1_2_inputs_and_outputs.006.png

Case Studies: створення вебзастосунків із Shiny в R

Створення входів

ui <- fluidPage(
    textInput(inputId = "name", label = "Enter your name",
              value = "Dean"),
    numericInput(inputId = "sibs", label = "How many siblings?",
                 value = 4, min = 0)
)
  • Функції введення: *Input(inputId, label, ...)
  • inputId = Унікальний ID
  • label = Текст-опис для введення
  • ... = Додаткові параметри для цього типу введення
Case Studies: створення вебзастосунків із Shiny в R

Виходи

  • Графіки, таблиці, текст — усе, що R створює і бачать користувачі
  • Два кроки:

    1. Створіть місце для виводу (в UI)

      ui <- fluidPage(
       "Plot goes here:",
       plotOutput(outputId = "my_plot")
      )
      
    2. Напишіть код R для генерації виводу (в server)

Case Studies: створення вебзастосунків із Shiny в R

Сервер

server <- function(input, output) {

  # Code for building outputs

}
  • input
    • Читайте значення звідси (входи, які змінює користувач)
  • output
    • Записуйте значення сюди (виходи, напр. графіки, таблиці)
Case Studies: створення вебзастосунків із Shiny в R

Створення виходів

ui <- fluidPage(
    numericInput("num", "Number of rows", value = 10, min = 0),
    tableOutput("my_table")
)

server <- function(input, output) { output$my_table <- renderTable({ head(iris, n = input$num) }) }
  • 3 правила для створення об'єкта виводу:
    1. Створюйте об'єкт усередині функції render (renderPlot(), renderText(), тощо)
    2. Зберігайте об'єкт у output$<outputId>
    3. Використовуйте input$<inputId> для доступу до значення входу
Case Studies: створення вебзастосунків із Shiny в R

Давайте потренуємось!

Case Studies: створення вебзастосунків із Shiny в R

Preparing Video For Download...