En betydelig del af al analyse og forskning går med at forberede data. Det er sjældent, at data kan beskrives, visualiseres og analyseres direkte efter, at de er importeret til R eller Python. Bearbejdning af data kræver tid og indsats. I det foregående kapitel gennemgik vi pakken dplyr, som indeholder funktioner til at bearbejde indholdet i en data frame. I dette kapitel gennemgås pakken tidyr, som bruges til at strukturere en data frame. Målet er at skabe tidy data, hvilket i langt de fleste tilfælde betyder, at rækkerne indeholder observationer (eksempelvis patienter), og kolonnerne indeholder information om observationerne (eksempelvis køn, alder, indkomst osv.). Langt størstedelen af alle analyser kræver, at data er i tidy format.
Den store fordel ved at strukturere en data frame, så kolonnerne er variabler, er, at det muliggør brug af vektoriserede funktioner. En vektoriseret funktion bruger hver vektor som input til at foretage beregninger. Hvis du har svært ved at forstå, hvad en vektoriseret funktion er, kan du blot konstatere, at næsten alle funktioner i R er vektoriserede. I en data frame kan du betragte en kolonne (variabel) som en vektor.
Eksempel på data i tidy format
I nedenstående eksempel er data i tidy format, fordi hver række er en observation (person), og hver kolonne er en variabel, der beskriver personen.
| Navn | Alder | Indkomst | Uddannelse | Kolesterol |
|---|---|---|---|---|
| Adam | 45 | 324211 | Videregående | 4.5 |
| Zara | 51 | 198765 | Grundskole | 7.6 |
Tidy data
Eksempel på data, der ikke er i tidy format
I nedenstående eksempel er data ikke i tidy format, fordi variablerne og deres tilsvarende værdier angives i kun to kolonner (Variabel og Værdi).
| Navn | Variabel | Værdi |
|---|---|---|
| Adam | Alder | 45 |
| Adam | Indkomst | 324211 |
| Adam | Uddannelse | Videregående |
| Zara | Alder | 51 |
| Zara | Indkomst | 198765 |
| Zara | Uddannelse | Grundskole |
Data i "long format", hvilket ikke er "tidy data".
Det er ikke nødvendigvis forkert, at data er i long format. Nogle gange skal data være i long format for at kunne visualiseres eller analyseres.
Eksempel på tidy data med gentagne målinger
I nedenstående eksempel er data også i tidy format, fordi hver række er en observation (person), og hver kolonne er en variabel, der beskriver personen, selv om den samme person optræder i flere rækker. Dette er et eksempel med gentagne målinger på det samme individ.
| Navn | Alder | Indkomst | Uddannelse | Kolesterol |
|---|---|---|---|---|
| Adam | 45 | 324211 | Videregående | 4.5 |
| Adam | 46 | 384211 | Videregående | 7.6 |
| Adam | 47 | 412321 | Videregående | 5.1 |
| Adam | 48 | 48921 | Videregående | 3.9 |
Tidy data med gentagne målinger.
I tidyr findes funktioner, der omarrangerer data, så de kan transformeres til forskellige formater.
Eksempler på funktioner i tidyr er følgende:
pivot_longer()- transformerer data til langt format (long format).pivot_wider()- transformerer data til bredt format (wide format).gather()- transformerer data til langt format. Er erstattet afpivot_longer().spread()- transformerer data til bredt format. Er erstattet afpivot_wider().unite()- Sammenføjer kolonner.separate()- Opdeler indholdet i en kolonne i flere kolonner.nest(),unnest(),unnest_longer()– Nester data og unnester data.expand(),complete()– udvider data.