So standardisieren Sie Daten in R (mit Beispielen)

Von Fabian
Kategorie: R
Tags: Operationen
Lesezeit: 3 Minuten

Um einen Datensatz zu standardisieren, müssen alle Werte im Datensatz so skaliert werden, dass der Mittelwert 0 und die Standardabweichung 1 beträgt.

Der häufigste Weg, dies zu tun, ist die Verwendung der Z-Score-Standardisierung, die Werte mit der folgenden Formel skaliert:

(x i - x ) / s

wo:

  • x i: Der i-te Wert im Datensatz
  • x: Der Stichprobenmittelwert
  • s: Die Standardabweichung der Stichprobe

Die folgenden Beispiele zeigen, wie die Funktion scale() im Einklang mit dem Paket dplyr in R verwendet wird, um eine oder mehrere Variablen in einem Dataframe mithilfe der Z-Score-Standardisierung zu skalieren.

Standardisieren Sie eine einzelne Variable

Der folgende Code zeigt, wie nur eine Variable in einem Dataframe mit drei Variablen skaliert wird:

library(dplyr)

#Machen Sie dieses Beispiel reproduzierbar 
set.seed(1)

#Originaldataframe erstellen
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#Originaldataframe anzeigen
df

        var1      var2      var3
1  13.275433  6.325466 35.845273
2  18.606195  5.707692 12.000703
3  28.642668 16.427480 26.505234
4  45.410389 10.066178  9.143318
5  10.084097 18.166670 13.818282
6  44.919484 12.451684 17.741765
7  47.233763 17.069989  5.441881
8  33.039890 22.830028 17.618803
9  31.455702  9.980739 33.699798
10  3.089314 18.326350 16.231517

#var1 auf Mittelwert = 0 und Standardabweichung = 1 skalieren
df2 <- df %>% mutate_at(c('var1'), ~(scale(.) %>% as.vector))
df2

          var1      var2      var3
1  -0.90606801  6.325466 35.845273
2  -0.56830963  5.707692 12.000703
3   0.06760377 16.427480 26.505234
4   1.13001072 10.066178  9.143318
5  -1.10827188 18.166670 13.818282
6   1.09890684 12.451684 17.741765
7   1.24554014 17.069989  5.441881
8   0.34621281 22.830028 17.618803
9   0.24583830  9.980739 33.699798
10 -1.55146305 18.326350 16.231517

Beachten Sie, dass nur die erste Variable skaliert wurde, während die beiden anderen Variablen gleich blieben. Wir können schnell bestätigen, dass die neue skalierte Variable einen Mittelwert von 0 und eine Standardabweichung von 1 hat:

#Mittelwert der skalierten Variablen berechnen
mean(df2$var1)

[1] -4.18502e-18 # praktisch Null

#Standardabweichung der skalierten Variablen berechnen 
sd(df2$var1)

[1] 1

Mehrere Variablen standardisieren

Der folgende Code zeigt, wie mehrere Variablen in einem Dataframe gleichzeitig skaliert werden:

library(dplyr)

#Machen Sie dieses Beispiel reproduzierbar 
set.seed(1)

#Originaldataframe erstellen
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#var1 und var2 auf Mittelwert = 0 und Standardabweichung = 1 skalieren
df3 <- df %>% mutate_at(c('var1', 'var2'), ~(scale(.) %>% as.vector))
df3

          var1       var2      var3
1  -0.90606801 -1.3045574 35.845273
2  -0.56830963 -1.4133223 12.000703
3   0.06760377  0.4739961 26.505234
4   1.13001072 -0.6459703  9.143318
5  -1.10827188  0.7801967 13.818282
6   1.09890684 -0.2259798 17.741765
7   1.24554014  0.5871157  5.441881
8   0.34621281  1.6012242 17.618803
9   0.24583830 -0.6610127 33.699798
10 -1.55146305  0.8083098 16.231517

Alle Variablen standardisieren

Der folgende Code zeigt, wie alle Variablen in einem Dataframe mit der Funktion mutate_all skaliert werden:

library(dplyr)

#Machen Sie dieses Beispiel reproduzierbar 
set.seed(1)

#Originaldataframe erstellen
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#skalieren Sie alle Variablen auf Mittelwert = 0 und Standardabweichung = 1
df4 <- df %>% mutate_all(~(scale(.) %>% as.vector))
df4

          var1       var2       var3
1  -0.90606801 -1.3045574  1.6819976
2  -0.56830963 -1.4133223 -0.6715858
3   0.06760377  0.4739961  0.7600871
4   1.13001072 -0.6459703 -0.9536246
5  -1.10827188  0.7801967 -0.4921813
6   1.09890684 -0.2259798 -0.1049130
7   1.24554014  0.5871157 -1.3189757
8   0.34621281  1.6012242 -0.1170501
9   0.24583830 -0.6610127  1.4702281
10 -1.55146305  0.8083098 -0.2539824

Zusätzliche Ressourcen

So normalisieren Sie Daten in R
Berechnen der Standardabweichung in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: