LoslegenKostenlos loslegen

Füge eine interaktive Tabellenausgabe hinzu

Es gibt mehrere htmlwidgets-Pakete wie DT, leaflet, plotly usw., die sehr interaktive Ausgaben bereitstellen und sich mit nahezu demselben Muster leicht in Shiny-Apps integrieren lassen. So kannst du z. B. eine statische Tabelle in einer Shiny-App mit dem Paket DT in eine interaktive Tabelle verwandeln:

  1. Erstelle eine interaktive Tabelle mit DT::datatable().
  2. Rendere sie mit DT::renderDT().
  3. Zeige sie mit DT::DTOutput() an.

In dieser Übung aktualisierst du die zuvor erstellte App und ersetzt die statische Tabelle durch eine interaktive Tabelle.

Diese Übung ist Teil des Kurses

Webanwendungen mit Shiny in R entwickeln

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine interaktive Tabellenausgabe mit DT für die 10 beliebtesten Namen nach Geschlecht und Jahr. Du kannst die Funktion top_10_names() verwenden, um einen Data Frame zur Anzeige zu erzeugen, und ihn an DT::datatable() übergeben.
  • Zeige die Tabelle im UI an.

Interaktive Übung

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

ui <- fluidPage(
  titlePanel("What's in a Name?"),
  # Add select input named "sex" to choose between "M" and "F"
  selectInput('sex', 'Select Sex', choices = c("M", "F")),
  # Add slider input named "year" to select year between 1900 and 2010
  sliderInput('year', 'Select Year', min = 1900, max = 2010, value = 1900),
  # MODIFY CODE BELOW: Add a DT output named "table_top_10_names"
  tableOutput('table_top_10_names')
)

server <- function(input, output, session){
  top_10_names <- function(){
    babynames %>% 
      filter(sex == input$sex) %>% 
      filter(year == input$year) %>% 
      slice_max(prop, n = 10)
  }
  # MODIFY CODE BELOW: Render a DT output named "table_top_10_names"
  output$table_top_10_names <- renderTable({
    top_10_names()
  })
}

shinyApp(ui = ui, server = server)
Code bearbeiten und ausführen