> langage et graphiques > Les bases > Environnements
Environnements
Un environnement est une liste d'objets nommés et un pointeur vers l'environnement parent. Quand une fonction est appelée, les variables définies dans la fonction sont locales : un nouvel environnement est créé dans lequel sont stockées les variables locales.
  Attention : cette rubrique est déconseillée aux débutants sous R.
Environnement local :
  
    - environment() : renvoie l'environnement local courant (à l'endroit de l'appel).
 
    - ls(environment()) : renvoie les objets définis dans l'environnement local courant.
 
  
 
Pour comprendre ce qu'est un environnement :
  
f <- function() {
  a <- 1
  ls(environment())
}
ls(environment())
f()
  
  donne
  
[1] "f"
[1] "a"
  
  
    - à l'appel de ls(environment()) hors de la fonction, il n'y a que "f" qui soit définie à cet endroit (la variable "a" est locale à la fonction)
 
    - quand on appelle f, à l'intérieur de f, il n'y a que "a" qui soit défini.
 
  
 
Environnement global : c'est l'environnement en dehors de toutes les fonctions du programme :
  
    - Il s'appelle .GlobalEnv et contient tous les objets définis par l'utilisateur (pas ceux pré-définis).
 
    - On peut aussi y accéder par globalenv().
 
    - donc, pour voir les objets définis en dehors des fonctions, il faut faire : ls(globalenv()
 
  
 
Environnement de base : c'est l'environnement du package de base :
  
    - on peut y accéder avec baseenv().
 
    - ls(baseenv()) : retourne la liste des objets pré-définis dans le package de base.
 
  
 
emptyenv() : c'est l'environnement vide.
Environnement parent :
  
    - parent.env(myEnv) : retourne l'environnement parent de l'environnement myEnv.
 
    - l'environnement parent de baseenv() est emptyenv()
 
    - parent.env(environment()) dans une fonction déinie directement dans le programme (pas déinie elle-même dans une autre fonction) donne l'environnement global.
 
  
 
Test de l'existence d'un objet dans un environnement :
  
    - exists("a", environment()) : teste si l'objet "a" existe dans l'environnment donné (ici, l'environnement courant) et tous les environnements le contenant (récursif).
 
    - exists("a", environment(), inherits = FALSE) : se limite à l'environnement indiqué, sans aller voir les environnements le contenant.
 
  
 
Copyright Aymeric Duclert
 
programmer en R, tutoriel R, graphes en R