URL: https://linuxfr.org/news/sortie-de-r-version-3-0-0 Title: Sortie de R version 3.0.0 Authors: arnaudus alpentux, Nÿco, claudex et Sylvestre Ledru Date: 2013年03月07日T13:06:23+01:00 License: CC By-SA Tags: r, statistiques et sciences Score: 32 Le projet R annonce la sortie de la version 3.0.0 du logiciel statistique du même nom (pre-release le 7 mars 2013, sortie officielle le 3 avril). R désigne à la fois un langage de programmation et son interpréteur. Historiquement, R est un dialecte dérivé du langage S, implémenté dans le logiciel propriétaire S-PLUS. L'aventure R a débuté en 1993, mais c'est à partir des années 2000 qu'il a pris une importance majeure dans le paysage des langages destinés aux applications statistiques. R rivalise aujourd'hui avec ses concurrents SAS ([Statistical Analysis System](http://fr.wikipedia.org/wiki/Statistical Analysis System "Définition Wikipédia")), SPSS ([Statistical Package for the Social Sciences](http://fr.wikipedia.org/wiki/Statistical Package for the Social Sciences "Définition Wikipédia")), ou [STATA](http://fr.wikipedia.org/wiki/Stata "Définition Wikipédia") ; il est devenu incontournable dans certaines disciplines, notamment la biologie. Le changement de version majeur (2.15.3 vers 3.0) ne signale pas une transition importante (voir le [changelog](http://stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.html)), mais marque une évolution progressive (la version 2.0 date de 2004). La mise à jour requiert cependant une réinstallation complète. R fonctionne de manière modulaire, avec un cœur relativement réduit, sur lequel peuvent se greffer des bibliothèques de fonctions fournies sous forme de « paquets ». R doit certainement une partie de son succès à l'activité de sa communauté, puisque plus de 4700 paquets activement maintenus sont disponibles au téléchargement sur le [site officiel](http://cran.r-project.org/), sans compter les projets indépendants, comme [bioconductor](http://www.bioconductor.org/). R est avant tout destiné au traitement et à l'analyse des données : tests statistiques, _data mining_, et production de graphiques de qualité (destinés à la publication). Le langage est de plus en plus utilisé pour produire des scripts portables, ou pour réaliser des simulations numériques ([MCMC](http://fr.wikipedia.org/wiki/MCMC "Définition Wikipédia"), typiquement). Réputé inefficace en tant que langage interprété, la possibilité de coder les fonctions critiques en C tout en utilisant la syntaxe « haut-niveau » de R ouvre une niche écologique significative pour le développement d'applications statistiques. ---- [Page officielle du projet R](http://www.r-project.org/index.html) [Liste des paquets disponibles](http://www.r-project.org/index.html) [R graph gallery : illustration des possibilités graphiques de R](http://gallery.r-enthusiasts.com/) ---- Au cours des dernières années, R s'est en effet enrichi pour fournir des fonctionnalités destinées au développement d'applications complexes : les classes de type S4 pour la programmation objet (typage, héritage, etc.) ; la bibliothèque « compiler » qui permet de compiler à la volée, et ainsi d'obtenir une accélération significative de l'exécution des scripts ; et la bibliothèque « parallel » qui, comme son nom l'indique, implémente un embryon de programmation multi-threads (seulement sous les systèmes permettant fork()). Il est évidemment impossible de faire une liste exhaustive des avantages réels ou supposés de R ; on peut citer : * La portabilité (GNU/Linux, BSD, Mac OS X et Windows) ; * La profusion de paquets contribués ; * Sa large diffusion (savoir coder en R est une condition souvent requise pour un job de bio-informaticien) ; * La richesse du langage de base (plusieurs milliers de fonctions disponibles sans installation de paquets) ; * La concision du code ; * La qualité de la documentation (un système automatique vérifie que chaque fonction est correctement documentée lors de la compilation des paquets). Évidemment, on peut jouer l'avocat du diable et lister les écueils : * Un manque d'homogénéité du fait du mode de développement modulaire (pas de conventions officielles sur le nommage, les indentations, etc.) ; * Illisible si mal codé (en particulier du fait de l'imbrication des parenthèses, crochets courbes et carrés) ; * Courbe d'apprentissage assez abrupte ; * Idiomes différents de ceux du C (par exemple, les boucles for() sont à proscrire la plupart du temps). Un exemple valant toujours mieux qu'une longue explication : ```r # Rien que du classique print("Hello world!") # Import-export data <- read.csv("mySpreadsheet.csv") write.table(data, "textfile.txt", sep="\t") # Manipulation de données: # on ne garde que les lignes du tableau dont la deuxième colonne # est supérieure à la moyenne data2 <- data[data[,2]>mean(data[,2]),] # on ajoute une colonne avec la médiane de chaque ligne data3 <- cbind(data, apply(data, MARGIN=1, FUN=median)) # Production de graphiques et statistiques: # régression x: première colonne, y:dernière colonne pdf("myplot.pdf") plot(data[,1], data[,ncol(data)], xlab="x", ylab="y") abline(lm(data[,ncol(data)] ~ data[,1])) dev.off() ```