ÎncepețiÎncepe gratuit

Construirea obiectelor de ieșire

Există trei reguli pentru a construi un element de ieșire în Shiny:

  1. Construiește obiectul cu funcția render*() corespunzătoare.

  2. Salvează rezultatul funcției de redare în lista output, care este un parametru al funcției server. Mai exact, salvează-l în output$<outputId>, pentru a înlocui marcatorul de poziție din UI care are ID-ul outputId.

  3. Dacă elementul de ieșire depinde de valori introduse de utilizator, le poți accesa prin parametrul input al funcției server. Mai exact, input$<inputId> va returna întotdeauna valoarea curentă a câmpului de intrare cu ID-ul inputId.

Acest exercițiu face parte din cursul

Studii de caz: Construirea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

Ai la dispoziție o aplicație Shiny cu o interfață UI complet funcțională. Sarcina ta este să construiești toate elementele de ieșire. Mai exact:

  • Creează un grafic al setului de date cars în marcatorul de poziție pentru grafice cu ID-ul "cars_plot" (linia 23).
  • În elementul de ieșire text "greeting", redă un mesaj de salut de forma "Hello NAME", unde NAME este valoarea din câmpul de intrare pentru nume (linia 28).
  • În elementul de ieșire "iris_table", afișează un tabel cu primele n rânduri din setul de date iris, unde n este valoarea din câmpul de intrare numeric (linia 33).

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul