Kom igångKom igång gratis

Konstruera utdataobjekt

Det finns tre regler för att bygga utdata i Shiny:

  1. Bygg objektet med lämplig render*()-funktion.

  2. Spara resultatet av render-funktionen i listan output, som är en parameter i serverfunktionen. Spara det specifikt i output$<outputId> för att ersätta utdataplatshållaren i UI:t med ID outputId.

  3. Om utdatan beror på användarändrade indatavärden kan du komma åt alla indata via parametern input i serverfunktionen. Mer specifikt returnerar input$<inputId> alltid det aktuella värdet för inmatningsfältet med ID inputId.

Den här övningen är en del av kursen

Fallstudier: Bygg webbapplikationer med Shiny i R

Visa kurs

Övningsinstruktioner

Du får en Shiny-app med en fullt fungerande UI-del. Din uppgift är att konstruera alla utdata. Mer specifikt:

  • Skapa ett diagram över datamängden cars i utdataplatshållaren för diagram med ID "cars_plot" (rad 23).
  • I textutdatan "greeting" renderar du en hälsningstext på formen "Hello NAME", där NAME är värdet från namnindatan (rad 28).
  • I utdatan "iris_table" visar du en tabell med de första n raderna i datamängden iris, där n är värdet från den numeriska indatan (rad 33).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod