Diese Musterlösung wurde erstellt von Peter Hähner (Ruhr-Universität Bochum).

(c) Luhmann: R für Einsteiger, 5. Aufl., Beltz, 2020

Vorbereitungen

Setzen Sie ein Arbeitsverzeichnis oder legen Sie ein entsprechendes R-Projekt an (Kap. 23).

Laden Sie dann die Datei erstis.RData.

load("erstis.RData")

Laden Sie die benötigten Pakete (ggf. müssen Sie diese vorab noch installieren).

library(ggplot2)
library(tidyverse)
library(patchwork)

Aufgabe 1

Fassen Sie die folgenden vier Diagramme auf einer Seite zusammen:

  1. Gruppierte Boxplots für die Variable gruppe (x-Achse) und prok (y-Achse)
  2. Streudiagramm für die Variablen prok (x-Achse) und lz.1 (y-Achse) mit Loess-Kurve
  3. Histogramm für die Variable alter
  4. Säulendiagramm mit absoluten Häufigkeiten für die Variable gruppe mit blauen Säulen

Lösung mit R-Basisfunktionen:

# Einstellungen so ändern, dass die Diagramme in 2 Zeilen und 2 Spalten angezeigt werden
par(mfrow = c(2, 2))

# Gruppierter Boxplot
boxplot(erstis$prok ~ erstis$gruppe, 
        xlab = "Gruppe", ylab = "Prokrastination") 

# Streudiagramm mit Loess-Kurve
plot(erstis$lz.1 ~ erstis$prok,
     xlab = "Prokrastination", ylab = "Lebenszufriedenheit")

auswahl <- na.omit(select(erstis, lz.1, prok))
lines(lowess(auswahl$lz.1 ~ auswahl$prok))

# Histogramm
hist(erstis$alter, xlab = "alter", ylab = "Häufigkeit", main = "")

# Säulendiagramm 
barplot(table(erstis$gruppe), xlab = "Gruppe", ylab = "Häufigkeit",
        col = 4)

Lösung mit ggplot2:

Hier werden alle Diagramme zunächst in Objekten gespeichert.

# Gruppierter Boxplot
p1 <- ggplot(erstis, aes(y = prok, x = gruppe)) + 
  geom_boxplot() +
  xlab("Gruppe") + 
  ylab("Prokrastination")

# Streudiagramm mit Loess-Kurve
p2 <- ggplot(erstis, aes(x = prok, y = lz.1)) +
  geom_point() +
  stat_smooth(method = loess) +
  xlab("Prokrastination") +
  ylab("Lebenszufriedenheit")

# Histogramm
p3 <- ggplot(erstis, aes(x = alter)) +
  geom_histogram() +
  xlab("Alter") +
  ylab("Häufigkeit")

# Säulendiagramm
p4 <- ggplot(erstis, aes(x = wohnort.alt)) +
  geom_bar(col = "blue", fill = "blue") +
  xlab("Gruppe") +
  ylab("Häufigkeit")

Im nächsten Schritt werden die Diagramme in 2 Zeilen und 2 Spalten angeordnet. Dafür muss das patchwork-Paket geladen sein (wurde oben bereits gemacht).

(p1 + p2) / (p3 + p4)

Aufgabe 2

Erstellen Sie ein Streudiagramm für die Variable gewiss (x-Achse) und prok(y-Achse). Berücksichtigen Sie dabei die folgenden Punkte:

  1. Der Titel des Diagramms ist “Gewissenhaftigkeit und Prokrastination”,
  2. Die Beschriftung der x-Achse ist “Gewissenhaftigkeit”“,
  3. die Beschriftung der y-Achse ist “Prokrastination”,
  4. die Achsenbeschriftungen sind rot und doppelt so groß wie normal,
  5. sowohl die x-Achse als auch die y-Achse haben jeweils einen Wertebereich von 1 bis 5 und
  6. die Datenpunkte werden als ausgefüllte blaue Punkte dargestellt.

Lösung mit R-Basisfunktionen:

# Optional: Randbreite des Diagramms ändern 
par(mar = c(5,6,4,1))

# Diagramm erstellen
plot(erstis$prok ~ erstis$gewiss,
     main = "Gewissenhaftigkeit und Prokrastination", 
     xlab = "Gewissenhaftigkeit", 
     ylab = "Prokrastination", 
     col.lab = "red",
     cex.lab = 2,
     xlim = c(1, 5), 
     ylim = c(1, 5), 
     col = "blue", 
     pch = 16)

Lösung mit ggplot2:

ggplot(erstis, aes(x = gewiss, y = prok)) +
  geom_point(col = "blue") +
  scale_x_continuous(limits = c(1, 5), 
                     name = "Gewissenhaftigkeit") +
  scale_y_continuous(limits = c(1, 5), 
                     name = "Prokrastination") +
  ggtitle("Gewissenhaftigkeit und Prokrastination") + 
  theme(axis.title.x = element_text(size = rel(2), colour = "red"), 
        axis.title.y = element_text(size = rel(2), colour = "red"))