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
  • : 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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *