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

Ajouter un commentaire

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