Avsnitt 1, Ämne 1
Startad

Tidy data

En betydande del av all analys och forskning går åt för att förbereda data. Det är ovanligt att data kan beskrivas, visualiseras och analyseras direkt efter data importerats till R eller Python. Bearbetning av data kräver tid och ansträngning. I föregående kapitel diskuterades paketet dplyr som innehåller funktioner för att bearbeta innehållet i en data frame. I detta kapitel diskuteras paketet tidyr, med vilken en data frame struktureras. Målsättningen är att skapa tidy data, som i de allra flesta fall innebär att raderna innehåller observationer (exempelvis patienter) och kolumnerna innehåller information om observationerna (exempelvis kön, ålder, inkomst, etc). Den absoluta majoriteten av alla analyser kräver att data är i tidy format.

Den stora fördelen med att strukturera en data frame så att kolumner är variabler är att det möjliggör användning av vektoriserade funktioner. En vektoriserad funktion använder varje vektor som input för att göra beräkningar. Om du har svårt att förstå vad en vektoriserad funktion är så kan du bara konstatera att nästan alla funktioner i R är vektoriserade. I en data frame kan du betrakta en kolumn (variabel) som en vektor.

Exempel på data i tidy format

I nedanstående exempel är data i tidy format eftersom varje rad är en observation (person) och varje kolumn är en variabel som beskriver personen.

NamnÅlderInkomstUtbildningKolesterol
Adam45324211Högskola4.5
Zara51198765Grundskola7.6
Tidy data

Exempel på data som inte är i tidy format

I nedanstående exempel är data inte i tidy format eftersom variablerna och deras motsvarande värden specificeras i endast två kolumner (Variabel och Värde).

NamnVariabelVärde
AdamÅlder45
AdamInkomst324211
AdamUtbildningHögskola
ZaraÅlder51
ZaraInkomst198765
ZaraUtbildningGrundskola
Data i "long format", vilket inte är "tidy data".

Det är inte nödvändigtvis fel att data är i long format. Ibland måste data vara i long format för att visualiseras eller analyseras.

Exempel på tidy data med upprepade mätningar

I nedanstående exempel är data också i tidy format eftersom varje rad är en observation (person) och varje kolumn är en variabel som beskriver personen, även om samma person återkommer på flera rader. Detta är ett exempel med upprepade mätningar på samma individ.

NamnÅlderInkomstUtbildningKolesterol
Adam45324211Högskola4.5
Adam46384211Högskola7.6
Adam47412321Högskola5.1
Adam4848921Högskola3.9
Tidy data med upprepade mätningar.

I tidyr finns funktioner som kastar om data så att det kan transformeras till olika format.

Exempel på funktioner i tidyr är som följer:

  • pivot_longer() - transformerar data till långt format (long format).
  • pivot_wider() - transformerar data till brett format (wide format).
  • gather() - transformerar data till långt format. Har ersatts av pivot_longer().
  • spread() - transformerar data till långt format. Har ersatts av pivot_wider().
  • unite() - Sammanfogar kolumner.
  • separate() - Separerar innehållet i en kolumn till flera kolumner.
  • nest(), unnest(), unnest_longer() – Nest'ar data och unnest'ar data.
  • expand(), complete() – expanderar data.