Comment utiliser les fonctions with() et inside() dans R



Les fonctions with() et inside() dans R peuvent être utilisées pour évaluer une expression basée sur un bloc de données.

Ces fonctions utilisent la syntaxe suivante :

with(data, expression)
within(data, expression)

où:

  • data : Le nom du bloc de données
  • expression : L’expression à évaluer

Voici la différence entre les deux fonctions :

  • with() évalue l’expression sans modifier le bloc de données d’origine.
  • inside() évalue l’expression et crée une copie du bloc de données d’origine.

Les exemples suivants montrent comment utiliser chaque fonction en pratique avec le bloc de données suivant :

#create data frame
df <- data.frame(x=c(3, 5, 5, 7, 6, 10),
                 y=c(2, 2, 0, 5, 9, 4))

#view data frame
df

   x y
1  3 2
2  5 2
3  5 0
4  7 5
5  6 9
6 10 4

Exemple 1 : utiliser la fonction with()

Nous pouvons utiliser la fonction with() suivante pour multiplier les valeurs entre les deux colonnes du bloc de données :

#multiply values between x and y
with(df, x*y)

[1]  6 10  0 35 54 40

Les valeurs de la colonne x et de la colonne y dans le bloc de données sont multipliées ensemble et le résultat est un vecteur de longueur 6.

Exemple 2 : utiliser la fonction inside()

Nous pouvons utiliser la fonction inside() suivante pour multiplier les valeurs entre les deux colonnes du bloc de données et attribuer les résultats à une nouvelle colonne du bloc de données :

#multiply values in x and y and assign results to new column z
within(df, z <- x*y)

   x y  z
1  3 2  6
2  5 2 10
3  5 0  0
4  7 5 35
5  6 9 54
6 10 4 40

Les résultats de la multiplication sont désormais stockés dans une nouvelle colonne nommée z .

Il est important de noter que la fonction inside() crée une copie du bloc de données d’origine mais ne modifie pas réellement le bloc de données d’origine :

#view original data frame
df

   x y
1  3 2
2  5 2
3  5 0
4  7 5
5  6 9
6 10 4

Pour stocker définitivement les résultats de la multiplication, il faut affecter les résultats à une nouvelle trame de données :

#multiply values in x and y and assign results to new data frame
df_new <- within(df, z <- x*y)

#view new data frame
df_new

   x y  z
1  3 2  6
2  5 2 10
3  5 0  0
4  7 5 35
5  6 9 54
6 10 4 40

Ressources additionnelles

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

Comment ajouter une colonne à un bloc de données dans R
Comment ajouter une colonne vide à un bloc de données dans R
Comment trier un bloc de données par colonne dans R

Ajouter un commentaire

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