Jak korzystać z funkcjiscale() w r (z przykładami)
Funkcja skala() w R może służyć do skalowania wartości w wektorze, macierzy lub ramce danych.
Ta funkcja wykorzystuje następującą podstawową składnię:
scale(x, center = TRUE , scale = TRUE )
Złoto:
- x : Nazwa obiektu do skalowania
- center : czy odjąć średnią podczas skalowania. Wartość domyślna to PRAWDA.
- skala : Określa, czy podczas skalowania dzielić przez odchylenie standardowe. Wartość domyślna to PRAWDA.
Ta funkcja wykorzystuje następujący wzór do obliczenia przeskalowanych wartości:
skalowane x = ( oryginał x – x̄) / s
Złoto:
- oryginał x : Oryginalna wartość x
- x̄ : Przykładowe środki
- s : odchylenie standardowe próbki
Nazywa się to również normalizacją danych i polega po prostu na przekształceniu każdej oryginalnej wartości w wynik Z.
Poniższe przykłady pokazują, jak w praktyce wykorzystać tę funkcję.
Przykład 1: Wartości skali w wektorze
Załóżmy, że mamy następujący wektor wartości w 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
Poniższy kod pokazuje jak skalować wartości wektorów za pomocą funkcjiscale () :
#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
Oto jak obliczono każdą skalowaną wartość:
- Wartość 1: (1 – 5) / 2,738613 = -1,46
- Wartość 2: (2 – 5) / 2,738613 = -1,09
- Wartość 3: (3 – 5) / 2,738613 = -0,73
I tak dalej.
Zauważ, że jeśli określimy skalę=FAŁSZ , wówczas funkcja nie będzie dzielić przez odchylenie standardowe podczas skalowania:
#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
Oto jak obliczono każdą skalowaną wartość:
- Wartość 1: 1 – 5 = -4
- Wartość 2: 2 – 5 = -3
- Wartość 3: 3 – 5 = -2
I tak dalej.
Przykład 2: Skaluj wartości kolumn w ramce danych
Najczęściej funkcjiscale() używamy, gdy chcemy przeskalować wartości wielu kolumn w ramce danych tak, aby każda kolumna miała średnią 0 i odchylenie standardowe 1.
Załóżmy na przykład, że mamy następującą ramkę danych w 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
Należy pamiętać, że zakres wartości zmiennej y jest znacznie większy niż zakres wartości zmiennej x.
Możemy użyć funkcjiscale() do przeskalowania wartości w dwóch kolumnach w taki sposób, aby przeskalowane wartości x i y miały średnią 0 i odchylenie standardowe 1:
#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
Kolumny x i y mają teraz średnią 0 i odchylenie standardowe 1.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:
Jak normalizować dane w R
Jak standaryzować dane w R
Jak uśredniać kolumny w R