output:
html_document:
toc: true
toc_float:
toc_collapsed: true
smooth_scroll: true
widescreen: true
highlight: pygments
theme: readable
css: ./styles/style.css
df_print: paged
mathjax: default
self_contained: false
incremental: false #True dann jedes Bullet einzeln
collapse: true # means the text output will be merged into the R source code block
includes:
after_body: ./styles/footer.html
before_body: ./styles/header.html
knitr::opts_chunk$set(echo = TRUE)
uni <- readRDS("../datasets/uni.rds")
library("viridis")
library("foreign")
library("psych")
library("Hmisc")
library("car")
library("DescTools")
library("ggpubr")
library("ggExtra")
library("readstata13")
library("summarytools")
library("gmodels")
library("corrplot")
library("gt")
library("extrafont")
library("tidyverse")
loadfonts(quiet = TRUE)
library("knitr")
opts_chunk$set(fig.path = 'pics/s6-', # path for calculated figures
fig.align = 'center', # alignment of figure (also possible right, left, default)
fig.show = 'hold', # how to show figures: hold -> direct at the end of code chunk; animate: all plots in an animation
fig.width = 3, # figure width
fig.height = 4, # figure height
echo = TRUE, # Code is printed
eval = FALSE, # Code is NOT evaluated
warning = FALSE, # warnings are NOT displayed
message = FALSE, # messages are NOT displayed
size = "tiny", # latex-size of code chunks
background = "#E7E7E7", # background color of code chunks
comment = "", # no hashtags before output
options(width = 80),
results = "markdown",
rows.print = 15
)
example <- table(uni$study,
uni$city)
htmltools::tagList(
xaringanExtra::use_clipboard(
button_text = "<i class=\"fa fa-clipboard\"></i>",
success_text = "<i class=\"fa fa-check\" style=\"color: #90BE6D\"></i>",
error_text = "<i class=\"fa fa-times-circle\" style=\"color: #F94144\"></i>"
),
rmarkdown::html_dependency_font_awesome()
)
gt
Tabellen publizierbar erstellen mit Das package gt
inkludiert hilfreiche Funktionen, um Tabellen aus R in ein Format zu exportieren, das in wissenschaftlichen Arbeiten oder bei Präsentationen genutzt werden kann.
Das Paket ist umfassend und hier werden nur einführende Schritte dargestellt, die aber für erste Projekte im BA-Studium hilfreich sind. Die genaue Dokumentation findet sich in der Benutzerdokumentation.
Die generelle Funktionslogik erfolgt bei gt
wie folgt:
All diese verschiedenen Felder können einzeln angesprochen werden und verändert werden.
Bevor wir nun mit den Beispielen starten, müssen wir das package selbst laden als auch tidyverse
.
# falls noch nicht installiert
# install.packages("gt",
# dependencies = TRUE)
# install.packages("tidyverse",
# dependencies = TRUE)
library("gt")
library("tidyverse")
Eine einfache Tabelle
Bevor wir nun Kreuztabellen darstellen, machen wir eine einfache Tabelle. Wir wollen zum Beispiel die Häufigkeiten für die Studienmotivation ausgeben lassen (mot
).
table(uni$mot)
Zuerst müssen wir mit tidyverse
ein tibble schaffen, dass wir an gt
übergeben können. Dazu wählen wir aus dem Datensatz die Variable mot
aus, gruppieren die Daten nach mot
und bilden dann mit summarize die jeweilige Summe unter den Ausprägungen der Variable mot
(Funktion n()
). Mit gt()
erstellen wir dann die Tabelle:
uni %>%
select(mot) %>%
group_by(mot) %>%
summarise(n = n()) %>%
gt()
Jetzt ist das Format noch etwas unhandlich für Berichte oder Abschlussarbeiten und daher nutzen wir eine weitere Funktion aus tidyverse
, nämlich pivot_wider()
. Mit pivot_wider()
können wir die Tabelle neu ordnen. Hierbei geben wir dann an, dass die Spaltennamen die Ausprägungen von mot
sind und die Werte (also der Inhalt der ersten und einzigen Zeile) aus der vorherigen Spalte n
entnommen werden.
uni %>%
select(mot) %>%
group_by(mot) %>%
summarise(n = n()) %>%
pivot_wider(names_from = mot,
values_from = n) %>%
gt()
Fertig ist die Darstellung der absoluten Häufigkeiten der Variable mot
. Dies sieht schon viel schöner aus als in der R Konsole (und ist auch als Bild exportierbar, dazu später mehr). Bevor nun einzelne Formatierungsmöglichkeiten in gt
gezeigt werden, gehen wir über zu Kreuztabellen und zur Ausgabe prozentualer Häufigkeiten.
Kreuztabelle
Wir nehmen wieder ein Beispiel aus dem Trainingsdatensatz uni
. Wir möchten eine Kreuztabelle zwischen Studienort (city
) und Studienfach (study
) erstellen. Wir möchten wissen, wie viele Personen jeweils in den einzelnen Städten die spezifischen Fächer studieren.