Come scalare i valori tra 0 e 1 in r


È possibile utilizzare i seguenti metodi per scalare i valori di una variabile tra 0 e 1 in R:

Metodo 1: utilizzare la base R

 #define function to scale values between 0 and 1
scale_values <- function (x){(x-min(x))/(max(x)-min(x))}

x_scaled <- rescale(x)

Metodo 2: utilizzare il pacchetto bilance

 library (scales)

x_scaled <- rescale(x)

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente frame di dati in R:

 #create data frame
df <- data. frame (store=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
                 sales=c(12, 24, 23, 59, 45, 34, 50, 77))

#view data frame
df

  blind sales
1 to 12
2 B 24
3 C 23
4 D 59
5 E 45
6 F 34
7 G 50
8:77 a.m.

Esempio 1: scalare i valori tra 0 e 1 utilizzando la base R

Il codice seguente mostra come definire una funzione personalizzata in base R e quindi utilizzare la funzione per scalare i valori nella colonna delle vendite del frame di dati tra 0 e 1:

 #define function to scale values between 0 and 1
scale_values <- function (x){(x-min(x))/(max(x)-min(x))}

#scale values in 'sales' column to be between 0 and 1
df$sales <- scale_values(df$sales)

#view updated data frame
df

  blind sales
1 A 0.0000000
2 B 0.1846154
3 C 0.1692308
4 D 0.7230769
5 E 0.5076923
6 F 0.3384615
7G 0.5846154
8 H 1.0000000

Ciascuno dei valori nella colonna Vendite è ora scalato tra 0 e 1.

Questa funzione utilizzava la seguente formula per scalare ciascuno dei valori:

  • Valore scalato = (valore – valore minimo) / (valore massimo – valore minimo)

Ad esempio, il valore scalato per le vendite del negozio A è stato calcolato come segue:

  • Valore scalato = (12 – 12) / (77 – 12) = 0 / 65 = 0 .

Allo stesso modo, il valore attuale delle vendite del negozio B è stato calcolato come segue:

  • Valore scalato = (24 – 12) / (77 – 12) = 12 / 65 = 0,1846 .

E così via.

Esempio 2: scalare i valori tra 0 e 1 utilizzando il pacchetto Scales

Il codice seguente mostra come utilizzare la funzione rescale() del pacchetto scales in R per ridimensionare i valori nella colonna vendite del frame di dati in modo che siano compresi tra 0 e 1:

 library (scales)

#scale values in 'sales' column to be between 0 and 1
df$sales <- rescale(df$sales)

#view updated data frame
df

  blind sales
1 A 0.0000000
2 B 0.1846154
3 C 0.1692308
4 D 0.7230769
5 E 0.5076923
6 F 0.3384615
7G 0.5846154
8 H 1.0000000

Ciascuno dei valori nella colonna Vendite è ora scalato tra 0 e 1.

Si noti che questi valori scalati corrispondono a quelli calcolati utilizzando il metodo R base.

Si noti inoltre che la funzione rescale() accetta un argomento to che specifica l’intervallo di valori scalati.

Ad esempio, puoi utilizzare la seguente sintassi per scalare i valori nella colonna vendite tra 0 e 100:

 library (scales)

#scale values in 'sales' column to be between 0 and 100
df$sales <- rescale(df$sales, to=c(0,100))

#view updated data frame
df

  blind sales
1 A 0.00000
2 B 18.46154
3 C 16.92308
4 D 72.30769
5 E 50.76923
6 F 33.84615
7G 58.46154
8 A.M. 100.00000

Ciascuno dei valori nella colonna Vendite è ora scalato tra 0 e 100.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come calcolare una media troncata in R
Come calcolare una media ponderata in R
Come calcolare il valore massimo in ogni riga in R

Aggiungi un commento

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