Tidy data

En betydelig del av all analyse og forskning går med til å forberede data. Det er uvanlig at data kan beskrives, visualiseres og analyseres direkte etter at de er importert til R eller Python. Bearbeiding av data krever tid og innsats. I forrige kapittel gikk vi gjennom pakken dplyr, som inneholder funksjoner for å bearbeide innholdet i en data frame. I dette kapitlet diskuteres pakken tidyr, som brukes til å strukturere en data frame. Målet er å lage tidy data, som i de aller fleste tilfeller innebærer at radene inneholder observasjoner (for eksempel pasienter) og kolonnene inneholder informasjon om observasjonene (for eksempel kjønn, alder, inntekt osv.). Det absolutte flertallet av alle analyser krever at data er i tidy-format.

Den store fordelen med å strukturere en data frame slik at kolonnene er variabler, er at det gjør det mulig å bruke vektoriserte funksjoner. En vektorisert funksjon bruker hver vektor som input for å gjøre beregninger. Hvis du synes det er vanskelig å forstå hva en vektorisert funksjon er, kan du bare slå fast at nesten alle funksjoner i R er vektoriserte. I en data frame kan du betrakte en kolonne (variabel) som en vektor.

Eksempel på data i tidy-format

I eksemplet nedenfor er data i tidy-format fordi hver rad er en observasjon (person) og hver kolonne er en variabel som beskriver personen.

Navn Alder Inntekt Utdanning Kolesterol
Adam 45 324211 Høyskole 4.5
Zara 51 198765 Grunnskole 7.6

Tidy data

Eksempel på data som ikke er i tidy-format

I eksemplet nedenfor er data ikke i tidy-format fordi variablene og de tilhørende verdiene er angitt i bare to kolonner (Variabel og Verdi).

Navn Variabel Verdi
Adam Alder 45
Adam Inntekt 324211
Adam Utdanning Høyskole
Zara Alder 51
Zara Inntekt 198765
Zara Utdanning Grunnskole

Data i "long format", som ikke er "tidy data".

Det er ikke nødvendigvis feil at data er i long format. Noen ganger må data være i long format for å kunne visualiseres eller analyseres.

Eksempel på tidy data med gjentatte målinger

I eksemplet nedenfor er data også i tidy-format fordi hver rad er en observasjon (person) og hver kolonne er en variabel som beskriver personen, selv om den samme personen går igjen på flere rader. Dette er et eksempel med gjentatte målinger på samme individ.

Navn Alder Inntekt Utdanning Kolesterol
Adam 45 324211 Høyskole 4.5
Adam 46 384211 Høyskole 7.6
Adam 47 412321 Høyskole 5.1
Adam 48 48921 Høyskole 3.9

Tidy data med gjentatte målinger.

I tidyr finnes det funksjoner som omorganiserer data slik at de kan transformeres til ulike formater.

Eksempler på funksjoner 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 av pivot_longer().
  • spread() - transformerer data til bredt format. Er erstattet av pivot_wider().
  • unite() - Slår sammen kolonner.
  • separate() - Deler innholdet i en kolonne opp i flere kolonner.
  • nest(), unnest(), unnest_longer() - Nester og unnester data.
  • expand(), complete() - ekspanderer data.