Beispiel für pivot_longer()

1 Setup

library(tidyverse)

2 Daten laden

d <- read_csv("https://raw.githubusercontent.com/sebastiansauer/2021-sose/master/data/Impfbereitschaft/d3.csv")

3 Von lang nach breit

d2 <-
  d %>% 
  select(willingness:open2) %>% 
  pivot_longer(extra1:open2)
d2 %>% 
  slice_head(n = 7) 
#> # A tibble: 7 x 6
#>   willingness health  fear cases name   value
#>         <dbl>  <dbl> <dbl> <dbl> <chr>  <dbl>
#> 1          10      9     5     1 extra1     2
#> 2          10      9     5     1 agree1     2
#> 3          10      9     5     1 cons1      3
#> 4          10      9     5     1 neuro1     2
#> 5          10      9     5     1 open1      4
#> 6          10      9     5     1 extra2     1
#> 7          10      9     5     1 agree2     4

4 Plotten

d2 %>% 
  ggplot() +
  aes(x = willingness, y = value) +
  facet_wrap(~ name) +
  geom_point() +
  geom_smooth(method = "lm")

Jedes Diagramm zeigt den Zusammenhang von Impfbereitschaft mit einem Big-Five-Item. Das Diagramm ist alles andere als ideal; hier ging es nur darum, den Nutzen von pivot_longer() an einem praktischen Beispiel zu zeigen.

5 Kommentar

pivot_longer() ist nützlich, z.B. wenn man mehrere Variablen visualisieren möchte. Ein sinnvoller Zugang ist es dann, eine Facette pro Variable zu zeigen (s. Beispiel oben). Dazu erstellt man eine Gruppierungsvariable, die die verschiedenen Variablen als Werte fasst, z.B. die Werte “Variable1”, “Variable”, … . Dann kann man diese Gruppierungsvariable für die Facettierung nutzen. Wichtig: Man kann nur über eine Variable facettiereen (mit facet_wrap()). Daher muss man also die mehreren Variablen in eine umformatieren. Das erreicht man mit pivot_longer().