Comment mettre à l’échelle uniquement les colonnes numériques dans R (avec exemple)
Vous pouvez utiliser la syntaxe suivante du package dplyr pour mettre à l’échelle uniquement les colonnes numériques d’un bloc de données dans R :
library(dplyr) df %>% mutate(across(where(is.numeric), scale))
L’exemple suivant montre comment utiliser cette fonction dans la pratique.
Exemple : mettre à l’échelle uniquement les colonnes numériques à l’aide de dplyr
Supposons que nous ayons le bloc de données suivant dans R qui contient des informations sur divers joueurs de basket-ball :
#create data frame df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'), points=c(22, 34, 30, 12, 18), assists=c(7, 9, 9, 12, 14), rebounds=c(5, 10, 10, 8, 8)) #view data frame df team points assists rebounds 1 A 22 7 5 2 B 34 9 10 3 C 30 9 10 4 D 12 12 8 5 E 18 14 8
Supposons que nous souhaitions utiliser la fonction d’échelle dans R pour mettre à l’échelle uniquement les colonnes numériques du bloc de données.
Nous pouvons utiliser la syntaxe suivante pour ce faire :
library(dplyr)
#scale only the numeric columns in the data frame
df %>% mutate(across(where(is.numeric), scale))
team points assists rebounds
1 A -0.1348400 -1.153200 -1.56144012
2 B 1.2135598 -0.432450 0.87831007
3 C 0.7640932 -0.432450 0.87831007
4 D -1.2585064 0.648675 -0.09759001
5 E -0.5843065 1.369425 -0.09759001
Notez que les valeurs dans les trois colonnes numériques ( points , passes décisives et rebonds ) ont été mises à l’échelle tandis que la colonne équipe est restée inchangée.
Notes techniques
La fonction scale() dans R utilise la syntaxe de base suivante :
scale(x, center = TRUE, scale = TRUE)
où:
- x : Nom de l’objet à mettre à l’échelle
- center : s’il faut soustraire la moyenne lors de la mise à l’échelle. La valeur par défaut est VRAI.
- scale : s’il faut diviser par l’écart type lors de la mise à l’échelle. La valeur par défaut est VRAI.
Cette fonction utilise la formule suivante pour calculer les valeurs mises à l’échelle :
x mis à l’échelle = (x original – x̄) / s
où:
- x original : La valeur x originale
- x̄ : La moyenne de l’échantillon
- s : l’écart type de l’échantillon
Ceci est également connu sous le nom de normalisation des données, qui convertit simplement chaque valeur originale en un score z .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes à l’aide de dplyr :
Comment sélectionner des colonnes par nom à l’aide de dplyr
Comment sélectionner des colonnes par index à l’aide de dplyr
Comment utiliser select_if avec plusieurs conditions dans dplyr