Erstellen von Tabellen in R

Autor:in

Patrik Häcki

Veröffentlichungsdatum

22. August 2025

Vorbereitende Arbeiten

Pakete laden

Code anzeigen
library(sysfonts)
library(showtext)
library(palmerpenguins)
library(tidyverse)
library(knitr)
library(kableExtra)
library(gt)
library(DT)
library(reactable)
library(modelsummary)

Daten

Zur Demonstration wird das Paket «palmerpenguins» und der Datensatz «penguins» verwendet, welcher Angaben zu drei Pinguinarten enthält.

Code anzeigen
head(penguins)
# A tibble: 6 × 8
  species island    bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
  <fct>   <fct>              <dbl>         <dbl>             <int>       <int>
1 Adelie  Torgersen           39.1          18.7               181        3750
2 Adelie  Torgersen           39.5          17.4               186        3800
3 Adelie  Torgersen           40.3          18                 195        3250
4 Adelie  Torgersen           NA            NA                  NA          NA
5 Adelie  Torgersen           36.7          19.3               193        3450
6 Adelie  Torgersen           39.3          20.6               190        3650
# ℹ 2 more variables: sex <fct>, year <int>

Tabelle mit kableExtra

Code anzeigen
kable(x = head(penguins), 
      format = "html", 
      caption = "Beispiel mit kableExtra") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Beispiel mit kableExtra
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex year
Adelie Torgersen 39.1 18.7 181 3750 male 2007
Adelie Torgersen 39.5 17.4 186 3800 female 2007
Adelie Torgersen 40.3 18.0 195 3250 female 2007
Adelie Torgersen NA NA NA NA NA 2007
Adelie Torgersen 36.7 19.3 193 3450 female 2007
Adelie Torgersen 39.3 20.6 190 3650 male 2007

Tabelle mit gt

Code anzeigen
gt(data = head(penguins), 
   locale = "de-CH") %>% 
  tab_header(title = "Pinguin-Daten", 
             subtitle = "Beispiel mit gt") %>% 
  fmt_number(columns = bill_length_mm:flipper_length_mm, 
             decimals = 1) %>% 
  fmt_number(columns = body_mass_g, 
             drop_trailing_zeros = TRUE, 
             sep_mark = "'")
Pinguin-Daten
Beispiel mit gt
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex year
Adelie Torgersen 39.1 18.7 181.0 3’750 male 2007
Adelie Torgersen 39.5 17.4 186.0 3’800 female 2007
Adelie Torgersen 40.3 18.0 195.0 3’250 female 2007
Adelie Torgersen NA NA NA NA NA 2007
Adelie Torgersen 36.7 19.3 193.0 3’450 female 2007
Adelie Torgersen 39.3 20.6 190.0 3’650 male 2007

Tabelle mit DT

Code anzeigen
datatable(data = head(penguins), 
          options = list(autoWidth = TRUE, 
                         pageLength = 5, 
                         language = list(
                           url = "//cdn.datatables.net/plug-ins/1.10.11/i18n/German.json")
                         )
          )

Tabelle mit reactable

Code anzeigen
reactable(data = head(penguins), 
          resizable = TRUE, 
          searchable = TRUE, 
          defaultPageSize = 5, 
          highlight = TRUE, 
          striped = TRUE, 
          language = reactableLang(
            searchPlaceholder = "Suchen...", 
            pageNext = "Nächste", 
            pagePrevious = "Zurück", 
            pageInfo = "{rowStart}\u2013{rowEnd} von {rows} Zeilen")
          )

Tabelle mit modelsummary

Code anzeigen
model1 <- lm(formula = body_mass_g ~ flipper_length_mm, data = penguins)
model2 <- lm(formula = body_mass_g ~ flipper_length_mm + species, data = penguins)
Code anzeigen
modelsummary(models = list("Modell 1" = model1, 
                           "Modell 2" = model2), 
             output = "html")
Modell 1 Modell 2
(Intercept) −5780.831 −4031.477
(305.815) (584.151)
flipper_length_mm 49.686 40.705
(1.518) (3.071)
speciesChinstrap −206.510
(57.731)
speciesGentoo 266.810
(95.264)
Num.Obs. 342 342
R2 0.759 0.783
R2 Adj. 0.758 0.781
AIC 5062.9 5031.5
BIC 5074.4 5050.7
Log.Lik. −2528.427 −2510.762
F 1070.745 405.693
RMSE 393.12 373.33