Tipps und Tricks

── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.1     ✔ stringr   1.5.2
✔ ggplot2   4.0.0     ✔ tibble    3.3.0
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.1.0     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Dataframes speichern und laden

Dataframe speichern und laden 1/3

Manchmal dauert es lange einen bestimmten Dataframe zu erzeugen. Dies kann zum Beispiel der Fall sein, wenn die Daten zuerst aus dem Internet heruntergeladen werden müssen. Dann macht es oft Sinn, das Projekt in zwei Dateien aufzuteilen:

  1. In der einen qmd-Datei werden die Daten geladen und aufbereitet. Die fertigen Daten können dann auf der Festplatte abgelegt werden.

  2. In einer anderen qmd-Datei werden die aufbereiteten Daten von der Festplatte eingelesen und dann statistisch ausgewertet.

Diese Vorgehensweise lässt sich mit wenig Aufwand durch die Funktionen save und load realisieren.

Dataframe speichern und laden 2/3

d <- tibble(A = c(1, 2, 3), B = c('u', 'v', 'w'))
save(d, file = "daten/test.RData")
rm(list = "d")

Dataframe d

  1. anlegen

  2. in der Datei daten/test.RData speichern

  3. löschen (nur für Demonstrationszwecke) (mit rm für remove = entfernen)

Dataframe speichern und laden 3/3

load('daten/test.RData')
  • Dataframe d wurde aus der Datei geladen und ist jetzt wieder vorhanden
  • Einlesen geht auch für umfangreiche Datensätze sehr schnell

Zeichenketten suchen und ersetzen

Beispieldatensatz

d <- tibble(
  Name = c("Unistraße Nord", "Unistraße Süd", "Markstraße Ost", "Markstraße West"), 
  Wert = c(10, 20, 4, 8)
)
d
# A tibble: 4 × 2
  Name             Wert
  <chr>           <dbl>
1 Unistraße Nord     10
2 Unistraße Süd      20
3 Markstraße Ost      4
4 Markstraße West     8

Richtung löschen

d |>
    mutate(Name2 = str_replace(Name, " Nord| Süd| Ost| West", ""))
# A tibble: 4 × 3
  Name             Wert Name2     
  <chr>           <dbl> <chr>     
1 Unistraße Nord     10 Unistraße 
2 Unistraße Süd      20 Unistraße 
3 Markstraße Ost      4 Markstraße
4 Markstraße West     8 Markstraße
  • Mit str_replace werden die Richtungen durch eine leere Zeichenkette ersetzt
  • Verschiedene zu ersetztende Zeichenketten mit | trennen