Come utilizzare la funzione scale() in r (con esempi)


La funzione scale() in R può essere utilizzata per ridimensionare i valori in un vettore, matrice o frame di dati.

Questa funzione utilizza la seguente sintassi di base:

 scale(x, center = TRUE , scale = TRUE )

Oro:

  • x : Nome dell’oggetto da ridimensionare
  • center : se sottrarre la media durante il ridimensionamento. Il valore predefinito è VERO.
  • scala : se dividere per la deviazione standard durante il ridimensionamento. Il valore predefinito è VERO.

Questa funzione utilizza la seguente formula per calcolare i valori scalati:

x scalato = (x originale – x̄) / s

Oro:

  • x originale : il valore x originale
  • : Il campione significa
  • s : la deviazione standard del campione

Questa operazione è nota anche come normalizzazione dei dati e converte semplicemente ciascun valore originale in un punteggio z .

I seguenti esempi mostrano come utilizzare questa funzione nella pratica.

Esempio 1: scala dei valori in un vettore

Supponiamo di avere il seguente vettore di valori 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

Il codice seguente mostra come ridimensionare i valori vettoriali utilizzando la funzione scale() :

 #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

Ecco come è stato calcolato ciascun valore scalato:

  • Valore 1: (1 – 5) / 2,738613 = -1,46
  • Valore 2: (2 – 5) / 2,738613 = -1,09
  • Valore 3: (3 – 5) / 2,738613 = -0,73

E così via.

Tieni presente che se specifichiamo scale=FALSE la funzione non verrà divisa per la deviazione standard durante il ridimensionamento:

 #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

Ecco come è stato calcolato ciascun valore scalato:

  • Valore 1: 1 – 5 = -4
  • Valore 2: 2 – 5 = -3
  • Valore 3: 3 – 5 = -2

E così via.

Esempio 2: scala i valori delle colonne in un frame di dati

Molto spesso utilizziamo la funzione scale() quando vogliamo ridimensionare i valori di più colonne in un frame di dati in modo tale che ciascuna colonna abbia una media pari a 0 e una deviazione standard pari a 1.

Ad esempio, supponiamo di avere il seguente frame di dati 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

Si noti che l’intervallo di valori della variabile y è molto più ampio dell’intervallo di valori della variabile x.

Possiamo utilizzare la funzione scale() per scalare i valori nelle due colonne in modo tale che i valori scalati di xey abbiano entrambi una media pari a 0 e una deviazione standard pari a 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

Le colonne xey ora hanno una media pari a 0 e una deviazione standard pari a 1.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come normalizzare i dati in R
Come standardizzare i dati in R
Come calcolare la media sulle colonne in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *