tidy up statclass 2

Wo liegt hier das Problem?

statclass2
##    test momo kim sascha  exam
## 1 stat1   12  13      4 exam1
## 2 stat1   NA  NA      8 exam2
## 3 stat2    5  10      5 exam1
## 4 stat2   NA  NA     NA exam2
## 5     r    6  13      3 exam1
## 6     r   NA  NA      9 exam2
## 7  spss    9   4      7 exam1
## 8  spss   NA   7     NA exam2
  • Namenwerte sind Spaltennamen!

Und hier die Lösung: Auch hier wandeln wir wieder in das long-Format um!

statclass2Tidy <- statclass2 %>%
  pivot_longer(
    momo:sascha, 
    names_to = "names", 
    values_to = "grade"
  )

statclass2Tidy
## # A tibble: 24 × 4
##    test  exam  names  grade
##    <chr> <chr> <chr>  <dbl>
##  1 stat1 exam1 momo      12
##  2 stat1 exam1 kim       13
##  3 stat1 exam1 sascha     4
##  4 stat1 exam2 momo      NA
##  5 stat1 exam2 kim       NA
##  6 stat1 exam2 sascha     8
##  7 stat2 exam1 momo       5
##  8 stat2 exam1 kim       10
##  9 stat2 exam1 sascha     5
## 10 stat2 exam2 momo      NA
## # ℹ 14 more rows

Gibt es evtl. noch mehr Probleme?

  • exam beinhaltet keine Werte, sondern Namen von Variablen, nämlich von exam1 und exam2! Variablen, die die Note in der Prüfung angeben, deren Wert noch in grade steht. Deshalb nutzen wir hier jetzt pivot_wider(), um die Daten final tidy zu machen:
statclass2Tidy <- statclass2Tidy %>% 
  pivot_wider(
    names_from = exam, 
    values_from = grade
  ) %>% 
  relocate(names) %>% 
  arrange(
    names,
    test
  )

statclass2Tidy

Nur zur Übung könnte man auch dies wiederum in den Ursprungsdatensatz mit pivot_wider() verändern:

statclass2re <- statclass2Tidy %>% 
  pivot_wider(
    names_from = test,
    values_from = c(
      exam1, 
      exam2
    )
  )