A.2 Les packages
R est modulaire (on peut lui rajouter des fonctions). De plus, comme il contient un très grand nombre de fonctions, toutes ne sont pas chargées en mémoire par défaut. Les fonctions optionnelles sont installables à l’aide de packages que l’on peut également charger à partir du site de R à http://cran.r-project.org. Les packages de R sont équivalents aux toolboxes de Matlab (pour ceux qui connaissent ce dernier logiciel)… Sauf que… les toolboxes de Matlab sont payantes (et chères) et que les packages de R sont, eux, gratuits !
Pour obtenir la liste des packages en mémoire, utilisez les instructions
(.packages())
ousearch()
ou encore l’entrée de menuMisc -> List search path
sous Windows. Les deux dernières méthodes ne listent pas que les packages en mémoire, mais également les environnements de travail global (.GlobalEnv) et autres (Autoloads par exemple).Pour obtenir la liste de tous les packages installés sur la machine, mais pas nécessairement chargés, recourez à l’aide HTML et cliquez sur le lien “Packages”, ou alors entrez l’instruction
.packages(all = TRUE)
.Comme exercice, allez voir la fonction
decloess()
dans le package {pastecs} dans l’aide HTML.Ensuite, retournez à R et rentrez
?decloess
, ainsi queexample(decloess)
. La fonction n’est pas reconnue par R (sauf si vous n’avez pas quitté R après avoir installé les packages additionnels, comme indiqué dans la partie I). Pourtant elle existe, puisque vous l’avez trouvée dans l’aide HTML ! En fait, elle fait partie du package {pastecs} qui n’est pas chargé en mémoire, et donc, qui est “hors de portée” du moteur de calcul de R dans l’environnement actuel.Pour charger le package en mémoire, il faut utiliser la fonction
library()
. Entrezlibrary(pastecs)
, puissearch()
. Un nouvel item"package:pastecs"
apparaît dans la liste, indiquant que le package correspondant est chargé en mémoire.Maintenant, entrez à nouveau
?decloess
etexample(decloess)
. Ces instructions doivent à présent être correctement reconnues et interprétées par R.Un dernier mot à propos des packages : ils contiennent aussi des séries de données types pour les exemples, bien utiles pour se faire la main sur les fonctions qu’on découvre. Pour connaître les séries de données disponibles, utilisez la fonction
data()
.Pour charger en mémoire des données, par exemple
marphy
du package {pastecs}, utilisezdata(marphy)
. Vous pouvez maintenant représenter ces données graphiquement à l’aide deplot(marphy)
(remarque : le graphique que vous voyez est un “matrix plot”), puisplot.ts(marphy)
pour tracer les séries spatio-temporelles.Enfin, de même qu’on libère la mémoire en éliminant des variables qui ne sont plus utilisées à l’aide de
rm()
, on a tout intérêt à décharger les packages qui ne sont plus utiles à l’aide dedetach("package:PKGNAME")
. Ainsi, pour refermer le package {pastecs}, entrezdetach("package:pastecs")
, puis faites unsearch()
pour vérifier que l’entrée n’existe plus dans la liste des environnements chargés en mémoire.
Remarque : il est évidemment idiot, et donc interdit, de décharger le package {base} de la mémoire, car celui-ci contient les fonctions de … base de R, sans lesquelles ce dernier ne peut pas fonctionner, et donc même pas se refermer proprement (c’est-à-dire, en sauvegardant les variables courantes, sic !). Pour la petite histoire, l’idée de décharger la package de base de R n’avait tellement pas effleuré l’esprit de ses programmeurs qu’ils n’avaient même pas pensé à interdire cette opération dans les premières versions de R. Ce n’est qu’après plusieurs années qu’un petit malin a découvert la faille… qui a été très rapidement corrigée.