Comment mettre à l’échelle les valeurs entre 0 et 1 dans R



Vous pouvez utiliser les méthodes suivantes pour mettre à l’échelle les valeurs d’une variable entre 0 et 1 dans R :

Méthode 1 : utiliser 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)

Méthode 2 : utiliser le package de balances

library(scales)

x_scaled <- rescale(x)

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant dans 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

  store sales
1     A    12
2     B    24
3     C    23
4     D    59
5     E    45
6     F    34
7     G    50
8     H    77

Exemple 1 : mettre à l’échelle les valeurs entre 0 et 1 en utilisant la base R

Le code suivant montre comment définir une fonction personnalisée en base R, puis utiliser la fonction pour mettre à l’échelle les valeurs de la colonne des ventes du bloc de données entre 0 et 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

  store     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
7     G 0.5846154
8     H 1.0000000

Chacune des valeurs de la colonne Ventes est désormais graduée entre 0 et 1.

Cette fonction a utilisé la formule suivante pour mettre à l’échelle chacune des valeurs :

  • Valeur mise à l’échelle = (valeur – valeur min) / (valeur max – valeur min)

Par exemple, la valeur mise à l’échelle pour les ventes du magasin A a été calculée comme suit :

  • Valeur mise à l’échelle = (12 – 12) / (77 – 12) = 0 / 65 = 0 .

De même, la valeur actualisée des ventes du magasin B a été calculée comme suit :

  • Valeur mise à l’échelle = ( 24 – 12) / (77 – 12) = 12 / 65 = 0,1846 .

Et ainsi de suite.

Exemple 2 : valeurs d’échelle comprises entre 0 et 1 à l’aide du package Scales

Le code suivant montre comment utiliser la fonction rescale() du package scales dans R pour mettre à l’échelle les valeurs de la colonne sales du bloc de données afin qu’elles soient comprises entre 0 et 1 :

library(scales)

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

#view updated data frame
df

  store     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
7     G 0.5846154
8     H 1.0000000

Chacune des valeurs de la colonne Ventes est désormais graduée entre 0 et 1.

Notez que ces valeurs mises à l’échelle correspondent à celles calculées à l’aide de la méthode de base R.

Notez également que la fonction rescale() accepte un argument to qui spécifie la plage des valeurs mises à l’échelle.

Par exemple, vous pouvez utiliser la syntaxe suivante pour mettre à l’échelle les valeurs de la colonne des ventes entre 0 et 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

  store     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
7     G  58.46154
8     H 100.00000

Chacune des valeurs de la colonne Ventes est désormais graduée entre 0 et 100.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment calculer une moyenne tronquée dans R
Comment calculer une moyenne pondérée dans R
Comment calculer la valeur maximale dans chaque ligne dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *