Avsnitt 1, Ämne 1
Startad

Data frame (tabeller)

Data frame (tabeller) i R

En data frame är som ett Excelblad, dvs en tabell med rader och kolumner. En typisk data frame ser ut som följer:

För de flesta ändamål utgör dina observationer (kunder, patienter, etc) raderna och kolumnerna beskriver observationerna. Om du analyserar patienter så är varje rad en patient och kolumnerna beskriver patienterna, t ex deras ålder, kön, blodtryck, sjukdomar. En data frame är helt enkelt en tvådimensionell tabell.

De flesta analyser i R görs på data frames! Regression, machine learning, statistiska tester osv, görs oftast på data frames.

En data frame skapas med funktionen  data.frame().

Du kan manuellt skapa en data frame genom att kombinera flera vektorer. Vektorerna blir variabler (kolumner) i data framen. Låt oss skapa en data frame med 3 vektorer:

# Skapa en sekvens av siffror, från siffran 1 till 15
variable1 <- 1:15

# Generera 15 slumpmässiga siffror med funktionen rnorm()
variable2 <- rnorm(15)

# Skapa en teckenvektor
variable3 <- c("A", "B", "W", "C", "D", "E", "A", "B", "C", "D", "E", "U", "O", "L", "E")

# Kombinera vektorerna till en data frame med funktionen data.frame()
my_data_frame <- data.frame(variable1, variable2, variable3)

# Se resultatet
my_data_frame
##    variable1   variable2 variable3
## 1          1  2.62236519         A
## 2          2  0.97561295         B
## 3          3 -0.69898033         W
## 4          4 -0.84577095         C
## 5          5  0.14130709         D
## 6          6 -0.59023300         E
## 7          7 -1.28369028         A
## 8          8 -0.50507139         B
## 9          9 -0.03698647         C
## 10        10 -0.75165815         D
## 11        11 -1.26071226         E
## 12        12  1.30092947         U
## 13        13  0.37934736         O
## 14        14 -0.53221638         L
## 15        15 -1.65424529         E

Varje kolumn i en data frame innehåller samma typ av data. Vektorerna ska vara av samma längd, annars återvinner R värden i det kortare objektet för att fylla i de saknade cellerna i data framen. Detta kan ge oväntade resultat men det är oftast inget problem eftersom man oftast importerar data till R, och då fyller R inte i saknade värden.

Låt oss kontrollera strukturen i vår data frame med hjälp av funktionen str():

str(my_data_frame)
## 'data.frame':    15 obs. of  3 variables:
##  $ variable1: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ variable2: num  2.622 0.976 -0.699 -0.846 0.141 ...
##  $ variable3: Factor w/ 9 levels "A","B","C","D",..: 1 2 9 3 4 5 1 2 3 4 ...

Funktionen redovisar att variable1 är ett heltal, variable2 är numerisk och variable3 är en faktor med 9 nivåer (kategorier). R tvingade teckenvektorn till en faktor! Du kan undvika detta genom att använda argumentet  stringsAsFactors = FALSE i funktionen data.frame():

my_data_frame <- data.frame(variable1, variable2, variable3, stringsAsFactors = FALSE)
str(my_data_frame)
## 'data.frame':    15 obs. of  3 variables:
##  $ variable1: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ variable2: num  2.622 0.976 -0.699 -0.846 0.141 ...
##  $ variable3: chr  "A" "B" "W" "C" ...

Nu är variable3 av typen chr, vilket är förkortning för character.