R : Différence entre versions

 
(67 révisions intermédiaires par 7 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
[[Catégorie:Logiciels]]
 
[[Catégorie:Logiciels]]
  
[[Image:R_Logo.png|thumb|Le logo de R.]]
+
[[Image:R_Logo.png|thumb]]
  
 
'''R''' est un langage de programmation et un environnement mathématique issu d'un projet GNU (similaire à S). R est employé pour le traitement de données et l'analyse statistique et dispose également de nombreuses fonctions graphiques.
 
'''R''' est un langage de programmation et un environnement mathématique issu d'un projet GNU (similaire à S). R est employé pour le traitement de données et l'analyse statistique et dispose également de nombreuses fonctions graphiques.
 +
 +
'''Note :'''  Pour les étudiants du premier cycle possédant un [[compte MAS]], une version [[RStudio Web|en ligne]] de R est disponible.
 +
  
 
__TOC__
 
__TOC__
  
 
== Guide ==
 
== Guide ==
[[Guide_R|Guide de R]]
+
[[Introduction_to_R|Introduction to R (anglais)]]
 +
 
 +
[[Writing_R_Extensions|Writing R Extensions (anglais)]]
  
[[Writing_R_Extensions|Writing R Extensions]]
+
[http://www.dms.umontreal.ca/downloads/IntroductionR.tar.gz Introduction à R]
  
 
=== Démarrage de R ===
 
=== Démarrage de R ===
  
* Pour lancer R en ligne de commande, entrez
+
* Pour lancer R en ligne de [[Commandes_élémentaires|commandes]], entrez
 
<pre>
 
<pre>
 
R
 
R
 
</pre>
 
</pre>
depuis une fenêtre de terminal.
+
dans un terminal de commandes.
  
* Pour lancer R avec l'interface graphique, entrez plutôt ce qui suit dans un terminal de commandes:
+
* Pour lancer R avec l'interface graphique, entrez plutôt ce qui suit&nbsp;:
 
<pre>
 
<pre>
 
xR
 
xR
 
</pre>
 
</pre>
  
===How can add-on packages be installed?===
+
=== Démarrer une [[Simulations|simulation]] en arrière-plan ===
The add-on packages on CRAN come as gzipped tar files named pkg_version.tar.gz, which may in fact be “bundles” containing more than one package. Provided that tar and gzip are available on your system, type
+
{|
  $ R CMD INSTALL /path/to/pkg_version.tar.gz
+
|rowspan="1"|[[Image:Attention.png|40px]]
 +
|
 +
Avant d'entreprendre des simulations numériques sur les machines du Département, vous êtes encouragé à consulter la page [[Simulations|Simulations]], en particulier la section traitant des [[Simulations#Consignes_à_respecter|consignes à respecter]].
 +
|}
  
To install to another tree (e.g., your private one), use
+
Pour démarrer le script <tt>prog.R</tt> en arrière-plan (''batch''), entrez
 +
<pre>
 +
R CMD BATCH prog.R &
 +
</pre>
 +
dans un terminal de commandes.
  
    $ R CMD INSTALL -l lib /path/to/pkg_version.tar.gz
+
==== Exemple ====
  
where lib gives the path to the library tree to install to.  
+
Dans le script qui suit, deux matrices 3x3 de nombres aléatoires sont additionnées et le résultat est enregistré, avec la fonction <tt>write</tt>, dans le fichier <tt>data.csv</tt> du compte de l'usager&nbsp;:
 +
<pre>
 +
set.seed(123)    # La graine du générateur de nombres aléatoires est fixée à "123".
  
Even more conveniently, you can install and automatically update packages from within R if you have access to repositories such as CRAN. See the help page for available.packages() for more information.
+
A <- matrix(data = runif(9), nrow = 3, ncol = 3)
 +
B <- matrix(data = runif(9), nrow = 3, ncol = 3)
  
You can use several library trees of add-on packages. The easiest way to tell R to use these is via the environment variable R_LIBS which should be a colon-separated list of directories at which R library trees are rooted. You do not have to specify the default tree in R_LIBS. E.g., to use a private tree in $HOME/lib/R and a public site-wide tree in /usr/local/lib/R-contrib, put
+
# Ci-dessous, le résultat de "A+B" est enregistré en 3 colonnes, le fichier "data.csv" est écrasé s'il existe déjà
 +
# (append=FALSE) et les colonnes sont séparées par un "Tab" ("\t").
  
    R_LIBS="$HOME/lib/R:/usr/local/lib/R-contrib"; export R_LIBS
+
write(A+B, file="~/data.csv", 3, append=FALSE, "\t")
 +
</pre>
  
into your (Bourne) shell profile or even preferably, add the line
+
Pour démarrer ce script, appelé <tt>exemple.R</tt>, il suffit d'entrer la commande
 +
<pre>
 +
R CMD BATCH exemple.R &
 +
</pre>
 +
Voici le résultat enregistré dans <tt>data.csv</tt>&nbsp;:
 +
<pre>
 +
0.7441923      1.745138        0.8623111
 +
1.560588        1.513101        0.1484812
 +
1.42793        1.138507        0.5934945
 +
</pre>
 +
'''N.B.&nbsp;:''' Pour obtenir des résultats ''différents'', il ne faut pas oublier d'utiliser des graines ''différentes'' pour le générateur de nombres aléatoires.
  
    R_LIBS="~/lib/R:/usr/local/lib/R-contrib"
+
=== Calculs en parallèle &ndash; [[Snow|<tt>snow</tt>]] ===
 +
Lorsque vos calculs s'y prêtent (opérations sur matrices et vecteurs, boucle avec itérations indépendantes, etc.), l'exécution de votre script en parallèle peut être très avantageuse.
  
your ~/.Renviron file. (Note that no export statement is needed or allowed in this file; see the on-line help for Startup for more information.)
+
Le logiciel R comprend un ''package'', appelé [[Snow|<tt>snow</tt>]], qui permet de paralléliser aisément les calculs. Consultez la page [[Snow|dédiée]] pour plus d'informations.
  
===How can add-on packages be used?===
+
=== Installation d'extensions  ===
 +
Les paquetages d'extension, ou ''add-on packages'', sur CRAN se forme de fichiers tar gzip nommés pkg_version.tar.gz, qui peuvent en fait être des «paquets» (bundles en anglais) contenant plus d'un paquet. Pourvu que tar et gzip sont disponibles sur votre système, tapez
 +
<pre>
 +
R CMD INSTALL /path/to/pkg_version.tar.gz
 +
</pre>
  
To find out which additional packages are available on your system, type
+
Pour installer à un autre arbre (par exemple, votre bien-privé), utilisez
 +
<pre>
 +
R CMD INSTALL -l lib /path/to/pkg_version.tar.gz
 +
</pre>
  
    library()
+
où <tt>lib</tt> donne le chemin de l'arbre de bibliothèque pour l'installation.
  
at the R prompt.
+
Encore plus pratique, vous pouvez installer et mettre à jour automatiquement les paquets «packages» à partir de R si vous avez accès à des référentiels tels que le CRAN. Voir la page d'aide pour available.packages () pour plus d'informations.
  
This produces something like
+
Vous pouvez utiliser des arbres de la bibliothèque de plusieurs paquets d'extension «add-on packages». La meilleure façon de dire à R d'utiliser les paquets d'extension «add-on packages» c'est via les variables d'environnement R_LIBS qui devrait être une liste séparées (par des deux points) des répertoires au cours de laquelle les arbres R de la bibliothèque sont enracinées. Vous n'avez pas à spécifier l'arbre de défaut dans R_LIBS. Par exemple, afin d'utiliser un arbre privé dans $ HOME/lib/R et un site public à l'échelle d'un arbre(public site-wide tree) dans /usr/local/lib/R-contrib, mettez
 +
<pre>
 +
R_LIBS="$HOME/lib/R:/usr/local/lib/R-contrib"; export R_LIBS
 +
</pre>
 +
dans votre (Bourne) profil de shell ou même de préférence, ajoutez la ligne
 +
<pre>
 +
R_LIBS="~/lib/R:/usr/local/lib/R-contrib"
 +
</pre>
 +
votre fichier ~/.Renviron . (Notez qu'aucune déclaration d'exportation est nécessaire ou autorisée dans ce fichier, consultez l'aide en ligne pour le démarrage «Startup» pour plus d'informations.)
  
              Packages in `/home/me/lib/R':             
+
=== Utilisation des extensions ===
              mystuff      My own R functions, nicely packaged but not documented
 
              Packages in `/usr/local/lib/R/library':             
 
              KernSmooth    Functions for kernel smoothing for Wand & Jones (1995)
 
              MASS          Main Package of Venables and Ripley's MASS
 
              base          The R Base package
 
              boot          Bootstrap R (S-Plus) Functions (Canty)
 
              class        Functions for Classification
 
              cluster      Functions for clustering (by Rousseeuw et al.)
 
              datasets      The R datasets Package
 
              foreign      Read data stored by Minitab, S, SAS, SPSS, Stata, ...
 
              grDevices    The R Graphics Devices and Support for Colours and Fonts
 
              graphics      The R Graphics Package
 
              grid          The Grid Graphics Package
 
              lattice      Lattice Graphics
 
              methods      Formal Methods and Classes
 
              mgcv          GAMs with GCV smoothness estimation and GAMMs by REML/PQ
 
              nlme          Linear and nonlinear mixed effects models
 
              nnet          Feed-forward Neural Networks and Multinomial Log-Linear
 
                            Models
 
              rpart        Recursive partitioning
 
              spatial      Functions for Kriging and Point Pattern Analysis
 
              splines      Regression Spline Functions and Classes
 
              stats        The R Stats Package
 
              stats4        Statistical functions using S4 classes
 
              survival      Survival analysis, including penalised likelihood
 
              tcltk        Tcl/Tk Interface
 
              tools        Tools for Package Development
 
              utils        The R Utils Package     
 
  
You can “load” the installed package pkg by
+
Afin de savoir quels paquets supplémentaires sont disponibles sur votre système, tapez
 +
<pre>
 +
library()
 +
</pre>
 +
dans R prompt.
  
     library(pkg)
+
Ceci produit quelque chose comme
 +
<pre>
 +
Packages in `/home/me/lib/R':             
 +
mystuff      My own R functions, nicely packaged but not documented
 +
Packages in `/usr/local/lib/R/library':             
 +
KernSmooth    Functions for kernel smoothing for Wand & Jones (1995)
 +
MASS          Main Package of Venables and Ripley's MASS
 +
base          The R Base package
 +
boot          Bootstrap R (S-Plus) Functions (Canty)
 +
class        Functions for Classification
 +
cluster      Functions for clustering (by Rousseeuw et al.)
 +
datasets      The R datasets Package
 +
foreign      Read data stored by Minitab, S, SAS, SPSS, Stata, ...
 +
grDevices    The R Graphics Devices and Support for Colours and Fonts
 +
graphics      The R Graphics Package
 +
grid          The Grid Graphics Package
 +
lattice      Lattice Graphics
 +
methods      Formal Methods and Classes
 +
mgcv          GAMs with GCV smoothness estimation and GAMMs by REML/PQ
 +
nlme          Linear and nonlinear mixed effects models
 +
nnet          Feed-forward Neural Networks and Multinomial Log-Linear Models
 +
rpart        Recursive partitioning
 +
spatial      Functions for Kriging and Point Pattern Analysis
 +
splines      Regression Spline Functions and Classes
 +
stats        The R Stats Package
 +
stats4        Statistical functions using S4 classes
 +
survival      Survival analysis, including penalised likelihood
 +
tcltk        Tcl/Tk Interface
 +
tools        Tools for Package Development
 +
utils        The R Utils Package      
 +
</pre>
 +
Vous pouvez «loader/charger» le paquet installé pkg par
 +
<pre>
 +
library(pkg)
 +
</pre>
 +
Vous pouvez ensuite déterminer les fonctions qu'il offre en tapant l'une des
 +
<pre>
 +
library(help = pkg)
 +
help(package = pkg)
 +
</pre>
 +
Vous pouvez «unloader/décharger» le paquet pkg «loadé/chargé» par
 +
<pre>
 +
detach("package:pkg")
 +
</pre>
  
You can then find out which functions it provides by typing one of
+
=== Désinstallation des extensions ===
  
    library(help = pkg)
+
utilisez
    help(package = pkg)
+
<pre>
 +
R CMD REMOVE pkg_1 ... pkg_n
 +
</pre>
 +
pour supprimer les paquets  <tt>pkg_1</tt>, ..., <tt>pkg_n</tt>  de la bibliothèque de l'arbre enracinés dans le premier répertoire donné dans R_LIBS si ce paramètre est réglé et non nulles, et à partir de la bibliothèque par défaut autrement. (Les versions de R avant 1.3.0 sont retirés de la bibliothèque par défaut, par défaut.)
  
You can unload the loaded package pkg by
+
Pour retirer de la bibliothèque lib, faites
 +
<pre>
 +
R CMD REMOVE -l lib pkg_1 ... pkg_n
 +
</pre>
  
    detach("package:pkg")
+
=== Nettoyage de l'espace de travail ===
 
+
Pour supprimer tous les objets dans l'environnement actif (en général. GlobalEnv), vous pouvez faire
 
+
<pre>
How can add-on packages be removed?
+
rm(list = ls(all = TRUE))
 
+
</pre>
Use
+
(Without all = TRUE, seuls les objets dont le nom ne commence pas par un `.' sont retirés.)  
 
 
    $ R CMD REMOVE pkg_1 ... pkg_n
 
 
 
to remove the packages pkg_1, ..., pkg_n from the library tree rooted at the first directory given in R_LIBS if this is set and non-null, and from the default library otherwise. (Versions of R prior to 1.3.0 removed from the default library by default.)
 
 
 
To remove from library lib, do
 
 
 
    $ R CMD REMOVE -l lib pkg_1 ... pkg_n
 
 
 
How can I clean up my workspace?
 
 
 
To remove all objects in the currently active environment (typically .GlobalEnv), you can do
 
 
 
    rm(list = ls(all = TRUE))
 
 
 
(Without all = TRUE, only the objects with names not starting with a `.' are removed.)  
 
 
 
How do I produce PNG graphics in batch mode?
 
 
 
Under Unix, the png() device uses the X11 driver, which is a problem in batch mode or for remote operation. If you have Ghostscript you can use bitmap(), which produces a PostScript file then converts it to any bitmap format supported by Ghostscript. On some installations this produces ugly output, on others it is perfectly satisfactory. In theory one could also use Xvfb from X.Org, which is an X11 server that does not require a screen; and the GDD package from CRAN, which produces PNG, JPEG and GIF bitmaps without X11.
 
 
 
===Batch Execution of R===
 
Run R non-interactively with input from infile and send output (stdout/stderr) to another file.
 
Usage
 
  
    R CMD BATCH [options] infile [outfile]
+
=== Génération de graphiques PNG en arrière-plan ===
  
Arguments
+
Sous Unix, le dispositif png() utilise le driver X11, qui est un problème en mode batch ou pour la commande et l'opération à distance. Si vous avez Ghostscript vous pouvez utiliser bitmap(), qui produit un fichier PostScript, puis le convertit en un format bitmap en charge(supporté) par Ghostscript. Sur certaines installations ceci produit des sorties laides, sur d'autres, il est tout à fait satisfaisante. En théorie, on pourrait aussi utiliser Xvfb de X.Org, qui est un serveur X11 qui ne nécessite pas un écran, et le paquet de GDD de CRAN, qui produit PNG, JPEG et GIF bitmaps sans X11.
  
* infile the name of a file with R code to be executed.
+
=== Fortran ===
* options a list of R command line options, e.g., for setting the amount of memory available and controlling the load/save process. If infile starts with a -, use -- as the final option. The default options are --restore --save --no-readline.
 
* outfile the name of a file to which to write output. If not given, the name used is that of infile, with a possible ‘.R’ extension stripped, and ‘.Rout’ appended.
 
  
===Fortran===
 
 
Le logiciel R intègre l'utilisation de fichiers sources Fortran ( .f ). Ainsi, avec le fichier source Fortran  "fichier.f" :
 
Le logiciel R intègre l'utilisation de fichiers sources Fortran ( .f ). Ainsi, avec le fichier source Fortran  "fichier.f" :
  
* Compiler le fichier : dans un terminal tapez : " R CMD SHLIB fichier.f " (sans les guillemets).
+
* Compiler le fichier puis, dans un terminal, tapez: <tt>R CMD SHLIB fichier.f</tt>.
* Ceci devrait créer dans votre répertoire deux fichiers : "fichier.so " et "fichier.o"
+
* Ceci devrait créer dans votre répertoire deux fichiers: <tt>fichier.so</tt> et <tt>fichier.o</tt>.
* Pour charger le fichier sous R, tapez sous R : dyn.load("fichier.so")
+
* Pour charger le fichier sous R, tapez (dans R): <tt>dyn.load("fichier.so")</tt>.
* Pour les débutants, un exemple fait par Jennifer Poulin : le fichier source transpose.f  et le fichier de commandes sous R transpose.txt .  
+
* Pour les débutants, un exemple fait par Jennifer Poulin: le fichier source <tt>transpose.f</tt> et le fichier de commandes sous R <tt>transpose.txt</tt>.  
  
transpose.f
+
<pre>
 +
******7**10********20********30********40********50********60********7072
 +
** Fichier "transpose.f" par Jennifer Poulin.
 +
** Sous-routine calculant la transposée de A:
 +
**
 +
** A: MxN
 +
** B = t(A): N:M
 +
    SUBROUTINE TRANSPOSE(A,B,m,n)
 +
    INTEGER i,j,m,n
 +
    DOUBLE PRECISION A(m,n), B(n,m)
 +
    DO i=1, n
 +
      DO j=1, m
 +
        B(i,j) = A(j,i)
 +
      ENDDO
 +
    ENDDO
 +
    RETURN
 +
    END
 +
</pre>
 +
<pre>
 +
** Exemple simple pour calculer la transposée d'une matrice sous R en utilisant le fichier source Fortran
 +
** "transpose.f" (par Jennifer Poulin):
 +
y <- matrix(1:30, nrow=3)
 +
dyn.load("transpose.so")
 +
transpo2 <- function(A){
 +
  n <- nrow(A)
 +
  m <- ncol(A)
 +
  B <- matrix(0,nrow=m,ncol=n)
 +
  storage.mode(B) <- "double"
 +
  resultat <- .Fortran("transpose",
 +
    as.double(A),
 +
    B=B,
 +
    as.integer(n),
 +
    as.integer(m))
 +
  B <- resultat[["B"]]
 +
  B
 +
}
 +
</pre>
 +
<pre>
 +
> y
 +
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 +
[1,]    1    4    7  10  13  16  19  22  25    28
 +
[2,]    2    5    8  11  14  17  20  23  26    29
 +
[3,]    3    6    9  12  15  18  21  24  27    30
  
******7**10********20********30********40********50********60********7072
+
> transpo2(y)
** Souroutine calculant la transposee de A par Jennifer Poulin
+
       [,1] [,2] [,3]
**
+
  [1,]    1    2    3
** A: MxN
+
  [2,]    4    5    6
** B = t(A): N:M
+
[3,]    7    8    9
      SUBROUTINE TRANSPOSE(A,B,m,n)
+
[4,]  10  11  12
      INTEGER i,j,m,n
+
[5,]  13  14  15
      DOUBLE PRECISION A(m,n), B(n,m)
+
[6,]  16  17  18
      DO i=1, n
+
[7,]  19  20  21
        DO j=1, m
+
[8,]  22  23  24
          B(i,j) = A(j,i)
+
[9,]  25  26  27
        ENDDO
+
[10,]  28  29  30
      ENDDO
+
</pre>
      RETURN
 
      END
 
 
 
 
 
Exemple simple pour calculer la transposée d'une matrice sous R en utilisant le fichier source Fortran transpose.f (par Jennifer Poulin):
 
 
 
y <- matrix(1:30, nrow=3)
 
dyn.load("transpose.so")
 
transpo2 <- function(A){
 
  n <- nrow(A)
 
  m <- ncol(A)
 
  B <- matrix(0,nrow=m,ncol=n)
 
  storage.mode(B) <- "double"
 
  resultat <- .Fortran("transpose",
 
    as.double(A),
 
    B=B,
 
    as.integer(n),
 
    as.integer(m))
 
  B <- resultat[["B"]]
 
  B
 
}
 
 
 
> y
 
       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 
  [1,]    1    4    7  10  13  16  19  22  25    28
 
[2,]    2    5    8  11  14  17  20  23  26    29
 
[3,]   3   6    9  12  15  18  21  24  27    30
 
 
 
  > transpo2(y)
 
      [,1] [,2] [,3]
 
  [1,]    1    2    3
 
  [2,]    4    5    6
 
  [3,]    7    8    9
 
  [4,]  10  11  12
 
  [5,]  13  14  15
 
  [6,]  16  17  18
 
  [7,]  19  20  21
 
  [8,]  22  23  24
 
  [9,]  25  26  27
 
[10,]  28  29  30
 
== Exemples ==
 
  
 
== Voir aussi ==
 
== Voir aussi ==
  
=== '''Bibliographie''' ===
+
=== Bibliographie ===
  
 
* J. Adler, ''R in a Nutshell: A Desktop Quick Reference'', O'Reilly, Sebastopol, CA 95472, 2010.
 
* J. Adler, ''R in a Nutshell: A Desktop Quick Reference'', O'Reilly, Sebastopol, CA 95472, 2010.
  
=== '''Articles connexes''' ===
+
=== Articles connexes ===
 +
<div class="inline">
 +
* [[Introduction_to_R|Introduction to R (anglais)]]
 +
* [[Installation_de_R_sur_un_ordinateur_personnel| Installation de R sur un ordinateur personnel]]
 +
* [[Snow|Calculs en parallèle &ndash; <tt>snow</tt>]]
 +
* [[Knitr]]
 +
* [[Simulations|Simulations numériques]]
 
* [[logiciels|Logiciels au DMS]]
 
* [[logiciels|Logiciels au DMS]]
* [[S-PLUS|S-PLUS]]
 
 
* [[SAS|SAS]]
 
* [[SAS|SAS]]
 
* [[SPSS|SPSS]]
 
* [[SPSS|SPSS]]
 
* [[stata|Stata]]
 
* [[stata|Stata]]
 +
* [[RStudio Web|RStudio Web]]
 +
</div>
  
=== '''Références externes''' ===
+
=== Références externes ===
 +
<div class="inline">
 
* [http://www.r-project.org/ Site officiel de R]
 
* [http://www.r-project.org/ Site officiel de R]
 
* [http://fr.wikipedia.org/wiki/R_%28logiciel%29 R sur Wikipédia]
 
* [http://fr.wikipedia.org/wiki/R_%28logiciel%29 R sur Wikipédia]
 +
</div>

Version actuelle datée du 4 décembre 2020 à 01:50


R Logo.png

R est un langage de programmation et un environnement mathématique issu d'un projet GNU (similaire à S). R est employé pour le traitement de données et l'analyse statistique et dispose également de nombreuses fonctions graphiques.

Note : Pour les étudiants du premier cycle possédant un compte MAS, une version en ligne de R est disponible.


Guide

Introduction to R (anglais)

Writing R Extensions (anglais)

Introduction à R

Démarrage de R

R

dans un terminal de commandes.

  • Pour lancer R avec l'interface graphique, entrez plutôt ce qui suit :
xR

Démarrer une simulation en arrière-plan

Attention.png

Avant d'entreprendre des simulations numériques sur les machines du Département, vous êtes encouragé à consulter la page Simulations, en particulier la section traitant des consignes à respecter.

Pour démarrer le script prog.R en arrière-plan (batch), entrez

R CMD BATCH prog.R &

dans un terminal de commandes.

Exemple

Dans le script qui suit, deux matrices 3x3 de nombres aléatoires sont additionnées et le résultat est enregistré, avec la fonction write, dans le fichier data.csv du compte de l'usager :

set.seed(123)    # La graine du générateur de nombres aléatoires est fixée à "123".

A <- matrix(data = runif(9), nrow = 3, ncol = 3)
B <- matrix(data = runif(9), nrow = 3, ncol = 3)

# Ci-dessous, le résultat de "A+B" est enregistré en 3 colonnes, le fichier "data.csv" est écrasé s'il existe déjà 
# (append=FALSE) et les colonnes sont séparées par un "Tab" ("\t").

write(A+B, file="~/data.csv", 3, append=FALSE, "\t")

Pour démarrer ce script, appelé exemple.R, il suffit d'entrer la commande

R CMD BATCH exemple.R &

Voici le résultat enregistré dans data.csv :

0.7441923       1.745138        0.8623111
1.560588        1.513101        0.1484812
1.42793         1.138507        0.5934945

N.B. : Pour obtenir des résultats différents, il ne faut pas oublier d'utiliser des graines différentes pour le générateur de nombres aléatoires.

Calculs en parallèle – snow

Lorsque vos calculs s'y prêtent (opérations sur matrices et vecteurs, boucle avec itérations indépendantes, etc.), l'exécution de votre script en parallèle peut être très avantageuse.

Le logiciel R comprend un package, appelé snow, qui permet de paralléliser aisément les calculs. Consultez la page dédiée pour plus d'informations.

Installation d'extensions

Les paquetages d'extension, ou add-on packages, sur CRAN se forme de fichiers tar gzip nommés pkg_version.tar.gz, qui peuvent en fait être des «paquets» (bundles en anglais) contenant plus d'un paquet. Pourvu que tar et gzip sont disponibles sur votre système, tapez

R CMD INSTALL /path/to/pkg_version.tar.gz

Pour installer à un autre arbre (par exemple, votre bien-privé), utilisez

R CMD INSTALL -l lib /path/to/pkg_version.tar.gz

lib donne le chemin de l'arbre de bibliothèque pour l'installation.

Encore plus pratique, vous pouvez installer et mettre à jour automatiquement les paquets «packages» à partir de R si vous avez accès à des référentiels tels que le CRAN. Voir la page d'aide pour available.packages () pour plus d'informations.

Vous pouvez utiliser des arbres de la bibliothèque de plusieurs paquets d'extension «add-on packages». La meilleure façon de dire à R d'utiliser les paquets d'extension «add-on packages» c'est via les variables d'environnement R_LIBS qui devrait être une liste séparées (par des deux points) des répertoires au cours de laquelle les arbres R de la bibliothèque sont enracinées. Vous n'avez pas à spécifier l'arbre de défaut dans R_LIBS. Par exemple, afin d'utiliser un arbre privé dans $ HOME/lib/R et un site public à l'échelle d'un arbre(public site-wide tree) dans /usr/local/lib/R-contrib, mettez

R_LIBS="$HOME/lib/R:/usr/local/lib/R-contrib"; export R_LIBS

dans votre (Bourne) profil de shell ou même de préférence, ajoutez la ligne

R_LIBS="~/lib/R:/usr/local/lib/R-contrib"

votre fichier ~/.Renviron . (Notez qu'aucune déclaration d'exportation est nécessaire ou autorisée dans ce fichier, consultez l'aide en ligne pour le démarrage «Startup» pour plus d'informations.)

Utilisation des extensions

Afin de savoir quels paquets supplémentaires sont disponibles sur votre système, tapez

library()

dans R prompt.

Ceci produit quelque chose comme

Packages in `/home/me/lib/R':              
mystuff       My own R functions, nicely packaged but not documented
Packages in `/usr/local/lib/R/library':              
KernSmooth    Functions for kernel smoothing for Wand & Jones (1995)
MASS          Main Package of Venables and Ripley's MASS
base          The R Base package
boot          Bootstrap R (S-Plus) Functions (Canty)
class         Functions for Classification
cluster       Functions for clustering (by Rousseeuw et al.)
datasets      The R datasets Package
foreign       Read data stored by Minitab, S, SAS, SPSS, Stata, ...
grDevices     The R Graphics Devices and Support for Colours and Fonts
graphics      The R Graphics Package
grid          The Grid Graphics Package
lattice       Lattice Graphics
methods       Formal Methods and Classes
mgcv          GAMs with GCV smoothness estimation and GAMMs by REML/PQ
nlme          Linear and nonlinear mixed effects models
nnet          Feed-forward Neural Networks and Multinomial Log-Linear Models
rpart         Recursive partitioning
spatial       Functions for Kriging and Point Pattern Analysis
splines       Regression Spline Functions and Classes
stats         The R Stats Package
stats4        Statistical functions using S4 classes
survival      Survival analysis, including penalised likelihood
tcltk         Tcl/Tk Interface
tools         Tools for Package Development
utils         The R Utils Package      

Vous pouvez «loader/charger» le paquet installé pkg par

library(pkg)

Vous pouvez ensuite déterminer les fonctions qu'il offre en tapant l'une des

library(help = pkg)
help(package = pkg)

Vous pouvez «unloader/décharger» le paquet pkg «loadé/chargé» par

detach("package:pkg")

Désinstallation des extensions

utilisez

R CMD REMOVE pkg_1 ... pkg_n

pour supprimer les paquets pkg_1, ..., pkg_n de la bibliothèque de l'arbre enracinés dans le premier répertoire donné dans R_LIBS si ce paramètre est réglé et non nulles, et à partir de la bibliothèque par défaut autrement. (Les versions de R avant 1.3.0 sont retirés de la bibliothèque par défaut, par défaut.)

Pour retirer de la bibliothèque lib, faites

R CMD REMOVE -l lib pkg_1 ... pkg_n

Nettoyage de l'espace de travail

Pour supprimer tous les objets dans l'environnement actif (en général. GlobalEnv), vous pouvez faire

rm(list = ls(all = TRUE))

(Without all = TRUE, seuls les objets dont le nom ne commence pas par un `.' sont retirés.)

Génération de graphiques PNG en arrière-plan

Sous Unix, le dispositif png() utilise le driver X11, qui est un problème en mode batch ou pour la commande et l'opération à distance. Si vous avez Ghostscript vous pouvez utiliser bitmap(), qui produit un fichier PostScript, puis le convertit en un format bitmap en charge(supporté) par Ghostscript. Sur certaines installations ceci produit des sorties laides, sur d'autres, il est tout à fait satisfaisante. En théorie, on pourrait aussi utiliser Xvfb de X.Org, qui est un serveur X11 qui ne nécessite pas un écran, et le paquet de GDD de CRAN, qui produit PNG, JPEG et GIF bitmaps sans X11.

Fortran

Le logiciel R intègre l'utilisation de fichiers sources Fortran ( .f ). Ainsi, avec le fichier source Fortran "fichier.f" :

  • Compiler le fichier puis, dans un terminal, tapez: R CMD SHLIB fichier.f.
  • Ceci devrait créer dans votre répertoire deux fichiers: fichier.so et fichier.o.
  • Pour charger le fichier sous R, tapez (dans R): dyn.load("fichier.so").
  • Pour les débutants, un exemple fait par Jennifer Poulin: le fichier source transpose.f et le fichier de commandes sous R transpose.txt.
******7**10********20********30********40********50********60********7072
** Fichier "transpose.f" par Jennifer Poulin.
** Sous-routine calculant la transposée de A:
**
** A: MxN
** B = t(A): N:M
     SUBROUTINE TRANSPOSE(A,B,m,n)
     INTEGER i,j,m,n
     DOUBLE PRECISION A(m,n), B(n,m)
     DO i=1, n
       DO j=1, m
         B(i,j) = A(j,i)
       ENDDO
     ENDDO
     RETURN 
     END
** Exemple simple pour calculer la transposée d'une matrice sous R en utilisant le fichier source Fortran 
** "transpose.f" (par Jennifer Poulin):
y <- matrix(1:30, nrow=3)
dyn.load("transpose.so")
transpo2 <- function(A){
  n <- nrow(A)
  m <- ncol(A)
  B <- matrix(0,nrow=m,ncol=n)
  storage.mode(B) <- "double"
  resultat <- .Fortran("transpose",
    as.double(A),
    B=B,
    as.integer(n),
    as.integer(m))
  B <- resultat[["B"]]
  B
} 
> y
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    4    7   10   13   16   19   22   25    28
[2,]    2    5    8   11   14   17   20   23   26    29
[3,]    3    6    9   12   15   18   21   24   27    30 

> transpo2(y)
      [,1] [,2] [,3]
 [1,]    1    2    3
 [2,]    4    5    6
 [3,]    7    8    9
 [4,]   10   11   12
 [5,]   13   14   15
 [6,]   16   17   18
 [7,]   19   20   21
 [8,]   22   23   24
 [9,]   25   26   27
[10,]   28   29   30

Voir aussi

Bibliographie

  • J. Adler, R in a Nutshell: A Desktop Quick Reference, O'Reilly, Sebastopol, CA 95472, 2010.

Articles connexes

Références externes


La dernière modification de cette page a été faite le 4 décembre 2020 à 01:50.