So verwenden sie die funktion „scale()“ in r (mit beispielen)
Die Funktion „scale()“ in R kann zum Skalieren von Werten in einem Vektor, einer Matrix oder einem Datenrahmen verwendet werden.
Diese Funktion verwendet die folgende grundlegende Syntax:
scale(x, center = TRUE , scale = TRUE )
Gold:
- x : Name des zu skalierenden Objekts
- center : ob der Mittelwert beim Skalieren subtrahiert werden soll. Der Standardwert ist TRUE.
- Skala : Ob beim Skalieren durch die Standardabweichung dividiert werden soll. Der Standardwert ist TRUE.
Diese Funktion verwendet die folgende Formel, um skalierte Werte zu berechnen:
skaliertes x = ( Original x – x̄) / s
Gold:
- original x : Der ursprüngliche x-Wert
- x̄ : Das Stichprobenmittel
- s : die Standardabweichung der Stichprobe
Dies wird auch als Datennormalisierung bezeichnet, bei der einfach jeder Originalwert in einen Z-Score umgewandelt wird.
Die folgenden Beispiele zeigen, wie Sie diese Funktion in der Praxis nutzen können.
Beispiel 1: Werte in einem Vektor skalieren
Angenommen, wir haben den folgenden Wertevektor in R:
#define vector of values x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9) #view mean and standard deviation of values mean(x) [1] 5 sd(x) [1] 2.738613
Der folgende Code zeigt, wie Vektorwerte mithilfe der Funktion „scale()“ skaliert werden:
#scale the values of x x_scaled <- scale(x) #view scaled values x_scaled [,1] [1,] -1.4605935 [2,] -1.0954451 [3,] -0.7302967 [4,] -0.3651484 [5,] 0.0000000 [6,] 0.3651484 [7,] 0.7302967 [8,] 1.0954451 [9,] 1.4605935
So wurde jeder skalierte Wert berechnet:
- Wert 1: (1 – 5) / 2,738613 = -1,46
- Wert 2: (2 – 5) / 2,738613 = -1,09
- Wert 3: (3 – 5) / 2,738613 = -0,73
Und so weiter.
Beachten Sie, dass bei Angabe von „scale=FALSE“ die Funktion beim Skalieren nicht durch die Standardabweichung dividiert:
#scale the values of x but don't divide by standard deviation x_scaled <- scale(x, scale = FALSE ) #view scaled values x_scaled [,1] [1,] -4 [2,] -3 [3,] -2 [4,] -1 [5,] 0 [6,] 1 [7,] 2 [8,] 3 [9,] 4
So wurde jeder skalierte Wert berechnet:
- Wert 1: 1 – 5 = -4
- Wert 2: 2 – 5 = -3
- Wert 3: 3 – 5 = -2
Und so weiter.
Beispiel 2: Spaltenwerte in einem Datenrahmen skalieren
Am häufigsten verwenden wir die Funktion „scale()“, wenn wir die Werte mehrerer Spalten in einem Datenrahmen so skalieren möchten, dass jede Spalte einen Mittelwert von 0 und eine Standardabweichung von 1 hat.
Angenommen, wir haben den folgenden Datenrahmen in R:
#create data frame df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9), y=c(10, 20, 30, 40, 50, 60, 70, 80, 90)) #view data frame df xy 1 1 10 2 2 20 3 3 30 4 4 40 5 5 50 6 6 60 7 7 70 8 8 80 9 9 90
Beachten Sie, dass der Wertebereich der y-Variablen viel größer ist als der Wertebereich der x-Variablen.
Mit der Funktion „scale()“ können wir die Werte in den beiden Spalten so skalieren, dass die skalierten Werte von x und y beide einen Mittelwert von 0 und eine Standardabweichung von 1 haben:
#scale values in each column of data frame df_scaled <- scale(df) #view scaled data frame df_scaled xy [1,] -1.4605935 -1.4605935 [2,] -1.0954451 -1.0954451 [3,] -0.7302967 -0.7302967 [4,] -0.3651484 -0.3651484 [5,] 0.0000000 0.0000000 [6,] 0.3651484 0.3651484 [7,] 0.7302967 0.7302967 [8,] 1.0954451 1.0954451 [9,] 1.4605935 1.4605935
Die x- und y-Spalten haben jetzt einen Mittelwert von 0 und eine Standardabweichung von 1.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in R ausgeführt werden:
So normalisieren Sie Daten in R
So standardisieren Sie Daten in R
So mitteln Sie den Durchschnitt über Spalten in R