Comment utiliser attach() dans R (avec exemples)
Vous pouvez utiliser la fonction attach() dans R pour rendre accessibles les objets des blocs de données sans avoir à saisir le nom du bloc de données.
Cette fonction utilise la syntaxe de base suivante :
attach(data)
Les exemples suivants montrent comment utiliser cette fonction dans différents scénarios avec le bloc de données suivant :
#create data frame df <- data.frame(team=c('A', 'B', 'C', 'D', 'E'), points=c(99, 90, 86, 88, 95), assists=c(33, 28, 31, 39, 34), rebounds=c(30, 28, 24, 24, 28)) #view data frame df team points assists rebounds 1 A 99 33 30 2 B 90 28 28 3 C 86 31 24 4 D 88 39 24 5 E 95 34 28
Exemple 1 : utilisez attach() pour effectuer des calculs
Normalement, si nous souhaitons calculer la moyenne, la médiane, la plage, etc. d’une colonne dans un bloc de données, nous utiliserons la syntaxe suivante :
#calculate mean of rebounds column
mean(df$rebounds)
[1] 26.8
#calculate median of rebounds column
median(df$rebounds)
[1] 28
#calculate range of rebounds column
range(df$rebounds)
[1] 24 30
Cependant, si nous utilisons attach() , nous n’avons même pas besoin de saisir le nom du bloc de données pour effectuer ces calculs :
attach(df)
#calculate mean of rebounds column
mean(rebounds)
[1] 26.8
#calculate median of rebounds column
median(rebounds)
[1] 28
#calculate range of rebounds column
range(rebounds)
[1] 24 30
En utilisant attach() , nous pouvons référencer directement le nom de la colonne et R sait quelle trame de données nous essayons d’utiliser.
Exemple 2 : utilisez attach() pour ajuster les modèles de régression
Normalement, si nous souhaitons adapter un modèle de régression linéaire dans R, nous utiliserons la syntaxe suivante :
#fit regression model
fit <- lm(points ~ assists + rebounds, data=df)
#view coefficients of regression model
summary(fit)$coef
Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.7071984 13.2030474 1.416885 0.29222633
assists 0.5194553 0.2162095 2.402555 0.13821408
rebounds 2.0802529 0.3273034 6.355733 0.02387244
Cependant, si nous utilisons attach() , nous n’avons même pas besoin d’utiliser l’argument data dans la fonction lm() pour ajuster le modèle de régression :
#fit regression model
fit <- lm(points ~ assists + rebounds)
#view coefficients of regression model
summary(fit)$coef
Estimate Std. Error t value Pr(>|t|)
(Intercept) 18.7071984 13.2030474 1.416885 0.29222633
assists 0.5194553 0.2162095 2.402555 0.13821408
rebounds 2.0802529 0.3273034 6.355733 0.02387244
Notez que les résultats de la régression sont exactement les mêmes.
Bonus : utilisez detach() et search()
Vous pouvez utiliser la fonction search() pour afficher tous les objets attachés dans l’environnement R actuel :
#show all attached objects
search()
[1] ".GlobalEnv" "df" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
Et vous pouvez utiliser la fonction detach() pour détacher un objet actuellement détaché :
#detach data frame
detach(df)
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment effacer l’environnement dans R
Comment effacer tous les tracés dans RStudio
Comment imprimer plusieurs variables sur la même ligne dans R