next up previous contents
Next: La librairie électronique Up: Introduction A S-Plus Previous: Autres fonctions liées

L'organisation du travail avec S-PLUS

 

A la fin du premier chapitre, nous avons mentionné qu'il est vivement recommandé de séparer les travaux et que S-PLUS le permettait aisément. Ainsi, nous allons détailler dans ce chapitre l'organisation du travail avec S-PLUS.

Tout d'abord, quittez S-PLUS puis retournez-y et exécutez la fonction search(). Vous devez voir sur votre écran une liste de directoires similiaire à la suivante:

 
> search()
[1] ".Data"                                 
[2] "/usr/people6/splus3.1/splus/.Functions"
[3] "/usr/people6/splus3.1/stat/.Functions" 
[4] "/usr/people6/splus3.1/s/.Functions"    
[5] "/usr/people6/splus3.1/s/.Datasets"     
[6] "/usr/people6/splus3.1/stat/.Datasets"  
[7] "/usr/people6/splus3.1/splus/.Datasets"

Vous pouvez alors remarquer que vous êtes relié à différents directoires, notamment au premier .Data qui contient toutes les variables créées durant la session courante. La commande objects() (ou bien ls()) en montre son contenu. Pour voir le contenu du deuxième directoire, tapez objects(where=2).

Les fonctions qui permettent de se relier à d'autres directoires et de s'en délier sont attach() et detach(). Nous avons déjà rencontré la commande attach() permettant un travail plus sophistiqué avec les tableaux de données. Faites par exemple attach(cu.summary) (le tableau de données mentionné au chapitre Quelques paramètres graphiques. En faisant à noveau search(), vous verrez la liste suivante:

 
> search()
[1] ".Data"
[2] "cu.summary"                                 
[3] "/usr/people6/splus3.1/splus/.Functions"
[4] "/usr/people6/splus3.1/stat/.Functions" 
[5] "/usr/people6/splus3.1/s/.Functions"    
[6] "/usr/people6/splus3.1/s/.Datasets"     
[7] "/usr/people6/splus3.1/stat/.Datasets"  
[8] "/usr/people6/splus3.1/splus/.Datasets"

En tapant objects(where=2), vous pouvez voir les noms des variables que vous pouvez appeler directement. La fonction detach() permet de se délier d'une position: faites detach(what=2) pour enlever cu.summary de votre liste.

Dans un travail régulier avec S-PLUS, vous allez créer des fonctions et des jeux de données que vous voudrez utiliser à partir de n'importe quel directoire. Nous vous conseillons de procéder de la manière suivante:

  1. Créez au niveau principal de votre compte un directoire nommé mon.Splus.
  2. A l'intérieur de ce directoire, créez les deux sous-directoires .Functions et .Datasets.
  3. Si vous avez écrit une fonction et que vous voulez l'utiliser pour différentes tâches, copiez-la au niveau UNIX dans le sous-directoire .Functions. Un exemple:
    cp .Data/absdet ~dupont/mon.Splus/.Functions/.

    De même pour des jeux de données: copiez-les dans le sous-directoire .Datasets.
  4. Utilisez attach() pour se relier à ces directoires: exécutez d'abord au niveau UNIX la commande pwd pour connaître le ``path'' entier de votre compte et puis au niveau S-PLUS (avec un ``path'' fictif):
    attach("/usr/student/dupont/mon.Splus/.Functions")
    attach("/usr/student/dupont/mon.Splus/.Datasets")

Afin d'éviter la réécriture de commandes utilisées systématiquement à chaque lancement de S-PLUS \!, il est possible de composer une fonction particulière .First() reconnue par le programme. Cette fonction sera exécutée automatiquement à chaque utilisation de S-PLUS. Un exemple typique pourrait être le suivant:



.First <- function()
{
   cat("B O N J O U R  !")
   motif()
	   help.start(gui = "motif")
	   options(prompt="... >",editor="ame")
	   options(contrasts = c("contr.sum","contr.treatment"))
	   attach("/usr/student/dupont/mon.Splus/.Functions")
	   attach("/usr/student/dupont/mon.Splus/.Datasets")
}




De manière similaire vous pouvez écrire une fonction qui sera exécutée à chaque sortie de S-PLUS: elle doit s'appeler .Last().



next up previous contents
Next: La librairie électronique Up: Introduction A S-Plus Previous: Autres fonctions liées



Marcel Baumgartner