LoslegenKostenlos loslegen

Deiner App Struktur geben

Layouts in Shiny geben deiner App Struktur, indem sie Elemente an gewünschten Positionen platzieren.

Ein Seitenleisten-Layout, erstellt mit der Funktion sidebarLayout(), bietet eine einfache Zwei-Spalten-Struktur mit einer kleineren Seitenleiste links und einem größeren Haupt-Panel rechts.

Die Funktion für das Seitenleisten-Layout nimmt zwei Argumente: sidebarPanel() und mainPanel(). Jedes dieser Panels kann eine beliebige Mischung aus Text-/HTML-Elementen enthalten – ähnlich wie du diese Elemente auch innerhalb von fluidPage() mischen kannst.

Diese Übung ist Teil des Kurses

Fallstudien: Webanwendungen mit Shiny in R erstellen

Kurs anzeigen

Anleitung zur Übung

Deine Aufgabe ist es, der bestehenden App ein Seitenleisten-Layout hinzuzufügen, sodass die Inputs links und die Outputs im Haupt-Panel platziert werden. Konkret sollst du:

  • das UI für die Shiny-Anwendung definieren,
  • der Seite ein Seitenleisten-Layout hinzufügen,
  • dem Layout ein Seitenleisten-Panel hinzufügen und Inputs sowie Text darin platzieren,
  • dem Layout ein Haupt-Panel hinzufügen und Diagramm sowie Tabelle darin platzieren.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Load the shiny package
library(shiny)

# Define UI for the application
ui <- ___(
  # Add a sidebar layout to the application
  ___(
    # Add a sidebar panel around the text and inputs
    ___(
      h4("Plot parameters"),
      textInput("title", "Plot title", "Car speed vs distance to stop"),
      numericInput("num", "Number of cars to show", 30, 1, nrow(cars)),
      sliderInput("size", "Point size", 1, 5, 2, 0.5)
    ),
    # Add a main panel around the plot and table
    ___(
      plotOutput("plot"),
      tableOutput("table")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    plot(cars[1:input$num, ], main = input$title, cex = input$size)
  })
  output$table <- renderTable({
    cars[1:input$num, ]
  })
}

# Run the application
shinyApp(ui = ui, server = server)
Code bearbeiten und ausführen