Data frame (tabeller)

Data frame (tabeller) i R

En data frame er ligesom et Excel-ark, dvs. en tabel med rækker og kolonner. En typisk data frame ser således ud:

Eksempeltabel med personer som rækker og variabler som alder, køn, vægt, indkomst, uddannelse og kolesterol som kolonner

I de fleste tilfælde udgør dine observationer (kunder, patienter osv.) rækkerne, og kolonnerne beskriver observationerne. Hvis du analyserer patienter, er hver række en patient, og kolonnerne beskriver patienterne, f.eks. deres alder, køn, blodtryk og sygdomme. En data frame er ganske enkelt en todimensionel tabel.

De fleste analyser i R udføres på data frames! Regression, machine learning, statistiske test osv. udføres oftest på data frames.

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

Du kan manuelt oprette en data frame ved at kombinere flere vektorer. Vektorerne bliver variabler (kolonner) i data framen. Lad os oprette en data frame med 3 vektorer:

## Opret en talsekvens fra tallet 1 til 15
variable1 <- 1:15

## Generér 15 tilfældige tal med funktionen rnorm()
variable2 <- rnorm(15)

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

## Kombinér vektorerne til 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

Hver kolonne i en data frame indeholder samme type data. Vektorerne skal have samme længde, ellers genbruger R værdier i det kortere objekt for at udfylde de manglende celler i data framen. Det kan give uventede resultater, men det er sjældent et problem, fordi man oftest importerer data til R, og så udfylder R ikke manglende værdier.

Lad os kontrollere strukturen i vores data frame ved hjælp af 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 viser, at variable1 er et heltal, variable2 er numerisk, og variable3 er en faktor med 9 niveauer (kategorier). R tvang tegnvektoren til en faktor! Det kan du undgå ved at bruge 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 er variable3 af typen chr, som er en forkortelse for character.

Data frame (tabeller) · Kardiologi