Différences entre les versions de « R »
(45 versions intermédiaires par 6 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Catégorie:Logiciels]] | [[Catégorie:Logiciels]] | ||
− | [[Image:R_Logo.png|thumb | + | [[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 == | ||
− | [[Introduction_to_R|Introduction to R]] | + | [[Introduction_to_R|Introduction to R (anglais)]] |
− | [[Writing_R_Extensions|Writing R Extensions]] | + | [[Writing_R_Extensions|Writing R Extensions (anglais)]] |
+ | |||
+ | [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 commandes, entrez | + | * Pour lancer R en ligne de [[Commandes_élémentaires|commandes]], entrez |
<pre> | <pre> | ||
R | R | ||
</pre> | </pre> | ||
− | + | dans un terminal de commandes. | |
− | * Pour lancer R avec l'interface graphique, entrez plutôt ce qui suit | + | * Pour lancer R avec l'interface graphique, entrez plutôt ce qui suit : |
<pre> | <pre> | ||
xR | xR | ||
</pre> | </pre> | ||
− | === Démarrer une simulation en arrière-plan === | + | === Démarrer une [[Simulations|simulation]] en arrière-plan === |
− | Pour démarrer le | + | {| |
+ | |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]]. | ||
+ | |} | ||
+ | |||
+ | Pour démarrer le script <tt>prog.R</tt> en arrière-plan (''batch''), entrez | ||
<pre> | <pre> | ||
− | R CMD BATCH prog. | + | R CMD BATCH prog.R & |
</pre> | </pre> | ||
dans un terminal de commandes. | dans un terminal de commandes. | ||
− | === | + | ==== Exemple ==== |
− | Les paquetages d'extension | + | |
+ | 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 : | ||
+ | <pre> | ||
+ | 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") | ||
+ | </pre> | ||
+ | |||
+ | 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> : | ||
+ | <pre> | ||
+ | 0.7441923 1.745138 0.8623111 | ||
+ | 1.560588 1.513101 0.1484812 | ||
+ | 1.42793 1.138507 0.5934945 | ||
+ | </pre> | ||
+ | '''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|<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. | ||
+ | |||
+ | 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. | ||
+ | |||
+ | === 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> | <pre> | ||
R CMD INSTALL /path/to/pkg_version.tar.gz | R CMD INSTALL /path/to/pkg_version.tar.gz | ||
Ligne 57 : | Ligne 100 : | ||
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.) | 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 | Afin de savoir quels paquets supplémentaires sont disponibles sur votre système, tapez | ||
Ligne 110 : | Ligne 153 : | ||
</pre> | </pre> | ||
− | === | + | === Désinstallation des extensions === |
utilisez | utilisez | ||
Ligne 122 : | Ligne 165 : | ||
R CMD REMOVE -l lib pkg_1 ... pkg_n | R CMD REMOVE -l lib pkg_1 ... pkg_n | ||
</pre> | </pre> | ||
− | === | + | |
+ | === Nettoyage de l'espace de travail === | ||
Pour supprimer tous les objets dans l'environnement actif (en général. GlobalEnv), vous pouvez faire | Pour supprimer tous les objets dans l'environnement actif (en général. GlobalEnv), vous pouvez faire | ||
<pre> | <pre> | ||
Ligne 129 : | Ligne 173 : | ||
(Without all = TRUE, seuls les objets dont le nom ne commence pas par un `.' sont retirés.) | (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. | 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. | ||
Ligne 207 : | Ligne 251 : | ||
=== Articles connexes === | === Articles connexes === | ||
− | * [[Introduction_to_R|Introduction to R ( | + | <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 – <tt>snow</tt>]] | ||
+ | * [[Knitr]] | ||
+ | * [[Simulations|Simulations numériques]] | ||
* [[logiciels|Logiciels au DMS]] | * [[logiciels|Logiciels au DMS]] | ||
− | |||
* [[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 3 décembre 2020 à 20:50
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
Writing R Extensions (anglais)
Démarrage de R
- Pour lancer R en ligne de commandes, entrez
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
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
où 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.