Commit 9dec9191 authored by Laurence Viry's avatar Laurence Viry
Browse files

ajout mis à jour sur serveur jupyter 11/01

parent 2943bcde
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Avant-propos \n",
"\n",
......
%% Cell type:code id: tags:
%% Cell type:markdown id: tags:
``` R
# Avant-propos
Ce cours s'adresse aux praticiens de la statistique, plus généralement aux personnes ayant à traiter des jeux de données dans des domaines variés (biologie, physique, sciences humaines,...) et ayant choisit R comme outil de traitement et d'analyse. Il a également pour objectif d'être un pré-requis à un cours avancé de développement avec R.
Le cours est centré principalement sur le logiciel R et son fonctionnement et même si on utilisera quelques procédures statistiques classiques au cours des manipulations, ça n'est pas un cours de statistiques.
Une première introduction aborde les raisons du choix de ce logiciel pour le traitement des données, son installation, la documentation, les packages, les interfaces utilisateurs disponibles (IDE) et une description de RStudio, l'IDE choisit pour ce cours. (IntroR.ipynb,IntroR.Rnw)
Dans une deuxième partie on présente les concepts de bases : les objets, les fonctions,... (Objets.ipynb, Objets.Rnw)
Dans la troisième partie, on aborde les manipulations de données qui sont des opérations courantes dans la pratique statistique: importation de données, sauvegarde de données et de résultats, traitements des données manquantes, concaténation des niveaux de facteurs,... (ManipDon.ipynb, ManipDon.Rnw). On effectuera quelques traitements statistiques sur les données.
Le traitement statistique s'accompagne d'une visualisation claire et synthétique des résultats, nous décrivons dans la quatrième partie les nombreuses possibilités offertes par R dans ce domaine (GraphiqueR.ipynb, GraphiqueR.Rnw).
Enfin dans la cinquième partie, nous présentons quelques éléments de programmation, comment construire un script R implémentant un algorithme statistique ou une chaine de traitements sur des données. On aborde dans cette partie les capacités de déboguage et de profiling de R et rapidement comment utiliser les ressources multi-coeur actuellement disponibles sur les portables ou serveurs à notre disposition (ProgrammerR.ipynb, ProgrammerR.Rnw).
Pour chacune de ces parties, vous aurez des fichiers notebook que vous pourrez utiliser sur [le serveur de notebook de GRICAD](https://jupyterhub.u-ga.fr/hub/login?next=%2Fhub%2Fuser%2Fviryl%2Ftree%3F), une version statique du cours et un fichier [R notebook Markdown](http://rmarkdown.rstudio.com/r_notebooks.html) que vous pourrez utiliser sur votre portable sous RStudio. [Pour en savoir plus sur les notebooks
(jupyter, Rmarkdown)](https://www.datacamp.com/community/blog/jupyter-notebook-r#gs.6iMBYHw)
L'ensemble des consignes et des fichiers utiles à ce cours est stocké dans le projet "CED-IntroR" du serveur gitlab de GRICAD, vous avez accès à ce serveur avec votre <identifiant,mot de passe> AGALAN.
## La plate-forme gitlab de l'UMS GRICAD
[gricad-gitlab](https://gricad-gitlab.univ-grenoble-alpes.fr/) est une plate-forme de travail collaboratif destinée à l'ensemble de la communauté enseignement-recherche grenobloise. Elle est hébergée et administrée par l'UMS GRICAD .
Il s'agit d'une implémentation du logiciel gitlab community edition, installée sur les serveurs de l'université.
Cette plate-forme permet de créer et de partager des projets, tout en bénéficiant d'un certain nombre de fonctionnalités telles que:
- gestion de version et de dépots (git)
- intégration continue
- ...
Ce cours est associé au projet [CED-IntroR](https://gricad-gitlab.univ-grenoble-alpes.fr/formations-statistiques-R/CED-IntroR). Pour récupérer l'ensemble des fichiers du cours, exécuter dans un terminal, dans un répertoire de travail à votre convenance, la commande:
git clone https://gricad-gitlab.univ-grenoble-alpes.fr/formations-statistiques-R/CED-IntroR.git
Vous récupérez un répertoire CED-IntroR dans lequel figurent, tous les fichiers qui seront utilisés (notebooks, données, scripts R,...).
## Le serveur de notebooks de l'UMS GRICAD
* Connectez vous sur [le serveur de notebook de GRICAD](https://jupyterhub.u-ga.fr/) avec votre compte Agalan.
* Exemple d'utilisation, suivre le cours "Introduction", première partie de ce cours.
- Télécharger le fichier "IntroR.ipynb" figurant dans le répertoire CED-IntroR/notebooks que vous avez récupé sur le gitlab de GRICAD (bouton Upload en haut à droite de l'écran)
- Vous avez dans ce documents deux types de cellules, des cellules de type " Markdown" et des cellules de code R, pour interpréter ces cellules faire shift-return simultanément.
- pour conaitre les quelques commandes d'utilisation d'un notebook, voir le tutorial "Getting started" figurant dans le projet gitlab.
## Installation de R sur votre portable
Pour un meilleur suivi du cours, nous vous conseillons d'installer R (Version 3.4.x au moins) et [RStudio](https://www.rstudio.com/products/RStudio/) sur votre ordinateur personnel , de préférence avant la première séance.
Il s’agit de deux logiciels libres, gratuits, téléchargeables en ligne et fonctionnant sous Windows, Mac-OS et Linux.
Pour installer R, il suffit de se rendre sur une des pages suivantes 2 :
* [Installer R sous Windows](https://cloud.r-project.org/bin/windows/base)
* [Installer R sous Mac](https://cloud.r-project.org/bin/macosx)
[RStudio](https://www.rstudio.com/products/RStudio/) est un environnement de développement intégré, qui propose des outils et facilite l’écriture de scripts et l’usage de R au quotidien. C’est une interface bien supérieure à celles fournies par défaut lorsqu’on installe R sous Windows ou sous Mac-OS
[Installer RStudio](https://www.rstudio.com/products/rstudio/download/#download), téléchargez la version adaptée à votre système :
Nous verrons comment installer de nouveaux package.
## Travailler sur des données personnelles...de préférence
Même si des exemples simples vous seront fournis pour faire quelques exercices, il est toujours plus efficace de s'éxercer sur des données personnelles. Ces données auront déjà été nettoyées en partie pour éviter de perdre du temps sur de la validation de saisie.
## Quelques tutoriaux ou MOOCS en compléùent
Si vous avez des questions, n'hésitez pas à m'envoyer un mail laurence.viry@univ-grenoble-alpes.fr
```
%% Cell type:code id: tags:
``` R
```
......
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Références utiles\n",
"* [How to speed up R code: an introduction](https://arxiv.org/abs/1503.00855)\n",
"* [R, Bonnes pratiques](http://christophe.genolini.free.fr/webTutorial/aTelecharger/RBonnesPratiques.pdf)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
%% Cell type:markdown id: tags:
## Références utiles
* [How to speed up R code: an introduction](https://arxiv.org/abs/1503.00855)
* [R, Bonnes pratiques](http://christophe.genolini.free.fr/webTutorial/aTelecharger/RBonnesPratiques.pdf)
......@@ -158,7 +158,9 @@
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
......@@ -253,7 +255,9 @@
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%capture capt\n",
......@@ -535,7 +539,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%cat foo.py"
......@@ -780,7 +786,9 @@
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%bash --out output --err error\n",
......@@ -924,7 +932,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
"version": "3.6.2"
}
},
"nbformat": 4,
......
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"cell_type": "markdown",
"metadata": {},
"outputs": [],
"source": [
"# Introduction\n",
"## Qu'est ce que R? \n",
......@@ -20,82 +18,103 @@
"\n",
"R est un langage de programmation simple et efficace qui permet à l'utilisateur d'écrire ses propres algorithmes en utilisant le traitement conditionnel, les boucles, la récursivité, les fonctions intrinsèques et utilisateurs et des fonctions d'entrée /sorties. \n",
"\n",
"R comprend une suite d'opérateurs pour les calculs sur des tableaux, en particulier des matrices.\n",
"R comprend une suite d'opérateurs po\n",
"\n",
"ur les calculs sur des tableaux, en particulier des matrices.\n",
"\n",
"R offre les possibilités d'améliorer ses performances en convertisant le haut niveau d'interprétation du code R en un langage compilé écrit en C, C++ ou Fortran (**RCPP**,...)\n",
"R permet de s'adapter à l'architecture des processeurs multi-coeurs et aux clusters de plusieurs noeuds en fournissant des outils aux développeurs qui lui permet d'utiliser des techniques de programmation parallèle (**parallel**,**multicore**,**snow**,...)\n",
"\n",
"Un dernier point important, les statisticiens ont implémentés dans R sous forme de packages directement intégrées dans R, des centaines de procédures adaptées à une grande variété d'applications.\n",
"\n",
"\n",
"Un dernier point important, les statisticiens ont implémentés dans R sous forme de packages directement intégrées dans R, des centaines de procédures adaptées à une grande variété d'applications."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pourquoi R?\n",
"### Avantages\n",
"\n",
"R a des avantages majeurs\n",
"* Il est gratuit et le restera puisqu'il est distribué librement sous les termes de la [GNU General Public Licence](http://www.gnu.org/)\n",
"* Il est disponible sur Internet, via un grand réseau de serveurs.\n",
"* Il fonctionne sur de nombreux systèmes d'exploitation Unix et dérivés incluant\n",
"1. Il est gratuit et le restera puisqu'il est distribué librement sous les termes de la [GNU General Public Licence](http://www.gnu.org/)\n",
"2. Il est disponible sur Internet, via un grand réseau de serveurs.\n",
"3. Il fonctionne sur de nombreux systèmes d'exploitation Unix et dérivés incluant\n",
"Darwin, Mac OS X, Linux, FreeBSD et Solaris; sur \n",
"Microsoft Windows; Apple Macintosh OS .\n",
"* Il est le produit d'une collaboration internationale entre\n",
"Microsoft Windows.\n",
"4. Il est le produit d'une collaboration internationale entre\n",
"statisticiens et informaticiens;\n",
"* Il ne limite pas l'utilisateur à un ensemble de procédures ou d'options tout en utilisant les packages déjà intégrés dans R.\n",
"\n",
"6. It can work on objects of unlimited size and complexity with a consistent,\n",
"logical expression language;\n",
"7. It is supported by comprehensive technical documentation and usercontributed\n",
"tutorials (§9). There are also several good textbooks on\n",
"statistical methods that use R (or S) for illustration.\n",
"8. Every computational step is recorded, and this history can be saved\n",
"for later use or documentation.\n",
"9. It stimulates critical thinking about problem-solving rather than a\n",
"“push the button” mentality.\n",
"10. It is fully programmable, with its own sophisticated computer language\n",
"(§4). Repetitive procedures can easily be automated by user-written scripts (§3.5). It is easy to write your own functions (§B),\n",
"and not too difficult to write whole packages if you invent some new\n",
"analysis;\n",
"11. All source code is published, so you can see the exact algorithms being\n",
"used; also, expert statisticians can make sure the code is correct;\n",
"12. It can exchange data in MS-Excel, text, fixed and delineated formats\n",
"(e.g. CSV), so that existing datasets are easily imported (§6), and results\n",
"computed in R are easily exported (§7).\n",
"13. Most programs written for the commercial S-PLUS program will run\n",
"unchanged, or with minor changes, in R (§2.3.1\n",
"5. Il ne limite pas l'utilisateur à un ensemble de procédures ou d'options, à une méthode presse-bouton tout en utilisant les packages déjà intégrés dans R.\n",
"6. Il fournit des outils consistants (bibliothèques, language,...) qui permettent de travailler avec des objets complexes de grande taille. \n",
"7. Il existe une documentation technique complète à laquelle participent les utilisateurs, des tutoriaux adaptés à des usages différents et aussi plusieurs bons livres sur les méthodes statistiques qui utilisent R (ou S) pour l'illustration.\n",
"8. Il est entièrement programmable, les procédures répétitives peuvent facilement être automatisées par des scripts écrits par l'utilisateur. Il est facile d'écrire ses propres fonctions, et pas trop compliqué d'écrire des paquets entiers pour implémenter de nouveaux algorithmes.\n",
"9. Le code source est publié, ainsi vous avez accès aux algorithmes exacts avec une validation possible les statisticiens experts.\n",
"10. Il peut échanger des données en format MS-Excel, texte, format fixe et délimité(CSV,...), de sorte que les jeux de données existants sont facilement importés, et les résultats calculés en R facilement exportables. \n",
"11. La plupart des programmes écrits avec S-PLUS fonctionneront sans modification, ou avec des changements mineurs, dans R.\n",
"\n",
"### Inconvénients\n",
"R présentent quelques inconvénients:\n",
"\n",
"* L'utilisateur doit définir lui-même la séquence des analyses et les exécuter pas à pas, cependant, il est facile de créer des scripts avec toutes les étapes dans les éditeurs des interfaces utilisateurs de R (dans ce cours RStudio).\n",
"* L'utilisateur doit apprendre à penser autrement la gestion de ses données, de penser les objets R comme des classes ce qui lui permettra de bénéficier des avantages des langages objet. Les méthodes opérant sur un objet en fonction de sa classe.\n",
"* L'utilisateur doit apprendre un langage, à la fois pour les commandes mais aussi pour la spécification des analyses statistiques.\n",
"1. L'utilisateur doit définir lui-même la séquence des analyses et les exécuter pas à pas, cependant, il est facile de créer des scripts avec toutes les étapes dans les éditeurs des interfaces utilisateurs de R (dans ce cours RStudio).\n",
"2. L'utilisateur doit apprendre à penser autrement la gestion de ses données, de penser les objets R comme des classes ce qui lui permettra de bénéficier des avantages des langages objet. Les méthodes opérant sur un objet en fonction de sa classe.\n",
"3. L'utilisateur doit apprendre un langage, à la fois pour les commandes mais aussi pour la spécification des analyses statistiques.\n",
"\n",
"### Alternatives\n",
"There are many ways to do computational statistics; this section discusses\n",
"them in relation to R. None of these programs are open-source, meaning\n",
"that you must trust the company to do the computations correctly.\n",
"#### S-PLUS\n",
"#### Statistical packages : SPSS, BMDP,SAS, Statistica, Minitab, Systat,Genstat,...\n",
"#### Applied mathematics programs\n",
"\n",
"Il y a d'autres logiciels qui permettent de faire des calculs statistiques et du traitement de données, ils peuvent souvent interagir entre eux avec la possibilité de programmer ses propres algorithmes ou d'interagir avec R. Aucun d'entre eux n'est open-source, ce qui signifie que vous devez faire confiance à l'entreprise pour faire les calculs correctemen\n",
"\n",
" - S-PLUS: : implémentation commerciale du langage S di usée par TIBCO.\n",
" - SAS: un concurrent de S-PLUS, très utilisée dans l'industrie, programmable.\n",
" - [Des programmes statistiques spécifques](http://www.stata.com/links/statistical-software-providers/).\n",
" - Tableurs: Microsoft Excel (Data Analysis. . . ),"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Installer R\n",
"R est distribué librement sous les termes de la [GNU General Public Licence](http://www.gnu.org/)\n",
"; son développement et sa distribution sont assurés par plusieurs statisticiens\n",
"rassemblés dans le **R Development Core Team**.\n",
", son développement et sa distribution sont assurés par plusieurs statisticiens\n",
"rassemblés dans le [**R Development Core Team**](https://cran.r-project.org/mirrors.html).\n",
"\n",
"Pour un meilleur suivi du cours, nous vous conseillons d'installer R (Version 3.4.x au moins) et RStudio sur votre ordinateur personnel. Il s’agit de deux logiciels libres, gratuits, téléchargeables en ligne et fonctionnant sous Windows, Mac-OS et Linux.\n",
"\n",
"R est disponible sous plusieurs formes : \n",
"* des exécutables précompilés pour Windows, Linux et OSX (Macintosh).\n",
"* de sources(écrit principalement en C et certaines routines en Fortran) qu'il faudra compiler avant de les utiliser.\n",
" - des exécutables précompilés pour Windows, Linux et OSX (Macintosh).\n",
" - de sources(écrit principalement en C et certaines routines en Fortran) qu'il faudra compiler avant de les utiliser.\n",
"\n",
"Pour installer R, il suffit de se rendre sur une des pages suivantes:\n",
"\n",
" - [Installer R sous **Windows**](https://cloud.r-project.org/bin/windows/base/)\n",
"\n",
"Les fichiers pour installer R, à partir des sources ou des exécutables, sont distribués à partir de sites internet du [CRAN](https://cran.r-project.org) où se trouvent aussi les instructions à suivre pour l'installation sur chaque système. \n",
" - [Installer R sous **Mac**](https://cloud.r-project.org/bin/macosx/)\n",
" \n",
" - [Sous **Linux**](https://cran.r-project.org/mirrors.html), R n’est fourni que comme un outil en ligne de commande, utilisez votre gestionnaire de packages habituel (de préférence, choisir un miroir proche de chez vous).\n",
"\n",
"Plusieurs packages sont fournis avec l'installation de base, de nouveaux packages peuvent être facilement ajoutés, l'installation peut se faire en local ou pour l'ensemble des utilisateurs. Nous verrons comment installer de nouveaux package dans la suite du cours.\n",
"\n",
"[RStudio](https://www.rstudio.com/products/RStudio/) est un environnement de développement intégré, qui propose des outils et facilite l’écriture de scripts et l’usage de R au quotidien. C’est une interface bien supérieure à celles fournies par défaut lorsqu’on installe R sous Windows ou sous Mac-OS\n",
"\n",
"[Installer RStudio](https://www.rstudio.com/products/rstudio/download/#download), téléchargez la version adaptée à votre système.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Utiliser R (Rossiter-RIntro-ITC.pdf)\n",
"Il y a plusieurs méthodes pour travailler avec R\n",
"\n",
"* En mode commande (CLI).\n",
"* à partir de l'interface de développement(IDE) RSudio.\n",
"* en utilisant le module ESS(Emacs Speaks Statistics) de l'éditeur **emacs**.\n",
"Il existe d'autres interfaces de développement, suivant les systèmes d'exploitation. On utilisera dans ce cours **RStudio** qui est l'IDE la plus couramment utilisée.\n",
"* En mode commande (CLI) avec un éditeur.\n",
"* À partir d'une interface de développement (IDE), dans ce cours nous utiliserons **RStudio**.\n",
"* En utilisant le module **ESS** (Emacs Speaks Statistics) de l'éditeur **emacs**.\n",
"\n",
"Suivant les systèmes d'exploitation, il existe d'autres interfaces de développement, **RStudio** est l'IDE la plus couramment utilisée."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Interface Utilisateur\n",
"\n",
"### Mode Console\n",
......@@ -106,12 +125,241 @@
"### Travailler en mode commande\n",
"#### Lancer la console R\n",
"\n",
"bash% R"
"### Utiliser RStudio\n",
"\n",
"RStudio est l'environnement de développement intégré multiplateforme\n",
"pour R le plus couramment utilisé. Une capture d'écran est représentée à la Figure 1. \n",
"\n",
"![RStudio](../figures/Rstudio.jpg)\n",
"\n",
"Cet environnement inclut dans une seule interface atttractive:\n",
"\n",
" - une console, \n",
" - un éditeur de code, \n",
" - sorties graphiques, \n",
" - l'historique,\n",
" - une aide en ligne, \n",
" - le contenu de l'espace de travail\n",
" - un gestionnaire de fichier\n",
" - le gestionnaire de paquets \n",
" \n",
" \n",
"L'utilisation typique est: \n",
"1. ouvrir un script ou lancer un nouveau script, \n",
"2. changer le répertoire de travail à l'emplacement de ce script,\n",
"3. écrire le code R dans le script,\n",
"4. passer des lignes de code du script à l'interface de ligne de commande et\n",
"évaluer la sortie, \n",
"5. examiner tous les graphiques et enregistrer pour une utilisation ultérieure."
]
},
{
"cell_type": "markdown",
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"5"
],
"text/latex": [
"5"
],
"text/markdown": [
"5"
],
"text/plain": [
"[1] 5"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"1.94591014905531"
],
"text/latex": [
"1.94591014905531"
],
"text/markdown": [
"1.94591014905531"
],
"text/plain": [
"[1] 1.94591"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>0.594258218305185</li>\n",
"\t<li>0.693383326986805</li>\n",
"\t<li>0.893219093093649</li>\n",
"\t<li>0.389077465748414</li>\n",
"\t<li>0.79426811914891</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.594258218305185\n",
"\\item 0.693383326986805\n",
"\\item 0.893219093093649\n",
"\\item 0.389077465748414\n",
"\\item 0.79426811914891\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.594258218305185\n",
"2. 0.693383326986805\n",
"3. 0.893219093093649\n",
"4. 0.389077465748414\n",
"5. 0.79426811914891\n",
"\n",
"\n"
],
"text/plain": [
"[1] 0.5942582 0.6933833 0.8932191 0.3890775 0.7942681"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [],
"text/latex": [],
"text/markdown": [],
"text/plain": [
"character(0)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>0.727575702825561</li>\n",
"\t<li>0.637299843598157</li>\n",
"\t<li>0.459470001980662</li>\n",
"\t<li>0.822656938573346</li>\n",
"\t<li>0.176055253017694</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 0.727575702825561\n",
"\\item 0.637299843598157\n",
"\\item 0.459470001980662\n",
"\\item 0.822656938573346\n",
"\\item 0.176055253017694\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 0.727575702825561\n",
"2. 0.637299843598157\n",
"3. 0.459470001980662\n",
"4. 0.822656938573346\n",
"5. 0.176055253017694\n",
"\n",
"\n"
],
"text/plain": [
"[1] 0.7275757 0.6372998 0.4594700 0.8226569 0.1760553"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"'a'"
],
"text/latex": [
"'a'"
],
"text/markdown": [
"'a'"
],
"text/plain": [
"[1] \"a\""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"1.94591014905531"
],
"text/latex": [
"1.94591014905531"
],
"text/markdown": [
"1.94591014905531"
],
"text/plain": [
"[1] 1.94591"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<ol class=list-inline>\n",
"\t<li>'a'</li>\n",
"\t<li>'n'</li>\n",
"</ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'a'\n",
"\\item 'n'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'a'\n",
"2. 'n'\n",
"\n",
"\n"
],
"text/plain": [
"[1] \"a\" \"n\""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"'n'"
],
"text/latex": [
"'n'"
],
"text/markdown": [
"'n'"
],
"text/plain": [
"[1] \"n\""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# R comme calculatrice\n",
"2+3\n",
......@@ -212,7 +460,7 @@
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "3.4.2"
"version": "3.3.2"
}
},
"nbformat": 4,
......
%% Cell type:code id: tags:
%% Cell type:markdown id: tags:
``` R
# Introduction
## Qu'est ce que R?
R est un système d'analyse statistique et graphique créé par Ross Ihaka et Robert Gentleman.
R est à la fois un logiciel et un langage interprété dont la conception dérive du langage S développé au sein des laboratoires AT&T Bell dans les années 80 et disponible actuellement sous la forme du logiciel S-PLUS commercialisé par la compagnie Insightful. Il y a des différences dans la conception de R et celle de S, pour en savoir plus sur ce point, se reporter au [R-FAQ3](https://cran.r-project.org/doc/FAQ/R-FAQ.html).
Le langage R possède aujourd'hui une communauté mature d'utilisateurs et de développeurs qui ont créé et partagé des milliers de package via le _Comprehensive R Archive Network_ (CRAN, https://cran.r-project.org).
R comporte de nombreuses fonctions pour les analyses statistiques, les
graphiques, le traitement et le stockage des données. Les graphiques sont visualisés à l'écran ou sur papier et peuvent être exportés sous divers formats (jpg, png, bmp, ps, pdf, emf, pictex,
xfig); les formats disponibles peuvent dépendre du système d'exploitation.
Les résultats des analyses statistiques sont affichés à l'écran ou peuvent être sauvegardés ou exportés dans un fichier pour être utilisés dans des analyses ultérieures.
R est un langage de programmation simple et efficace qui permet à l'utilisateur d'écrire ses propres algorithmes en utilisant le traitement conditionnel, les boucles, la récursivité, les fonctions intrinsèques et utilisateurs et des fonctions d'entrée /sorties.
R comprend une suite d'opérateurs pour les calculs sur des tableaux, en particulier des matrices.
R comprend une suite d'opérateurs po
ur les calculs sur des tableaux, en particulier des matrices.
R offre les possibilités d'améliorer ses performances en convertisant le haut niveau d'interprétation du code R en un langage compilé écrit en C, C++ ou Fortran (**RCPP**,...)
R permet de s'adapter à l'architecture des processeurs multi-coeurs et aux clusters de plusieurs noeuds en fournissant des outils aux développeurs qui lui permet d'utiliser des techniques de programmation parallèle (**parallel**,**multicore**,**snow**,...)
Un dernier point important, les statisticiens ont implémentés dans R sous forme de packages directement intégrées dans R, des centaines de procédures adaptées à une grande variété d'applications.
%% Cell type:markdown id: tags:
## Pourquoi R?
### Avantages
R a des avantages majeurs
* Il est gratuit et le restera puisqu'il est distribué librement sous les termes de la [GNU General Public Licence](http://www.gnu.org/)
* Il est disponible sur Internet, via un grand réseau de serveurs.
* Il fonctionne sur de nombreux systèmes d'exploitation Unix et dérivés incluant
1. Il est gratuit et le restera puisqu'il est distribué librement sous les termes de la [GNU General Public Licence](http://www.gnu.org/)
2. Il est disponible sur Internet, via un grand réseau de serveurs.
3. Il fonctionne sur de nombreux systèmes d'exploitation Unix et dérivés incluant
Darwin, Mac OS X, Linux, FreeBSD et Solaris; sur
Microsoft Windows; Apple Macintosh OS .
* Il est le produit d'une collaboration internationale entre
Microsoft Windows.
4. Il est le produit d'une collaboration internationale entre
statisticiens et informaticiens;
* Il ne limite pas l'utilisateur à un ensemble de procédures ou d'options tout en utilisant les packages déjà intégrés dans R.
6. It can work on objects of unlimited size and complexity with a consistent,
logical expression language;
7. It is supported by comprehensive technical documentation and usercontributed
tutorials (§9). There are also several good textbooks on
statistical methods that use R (or S) for illustration.
8. Every computational step is recorded, and this history can be saved
for later use or documentation.
9. It stimulates critical thinking about problem-solving rather than a
“push the button” mentality.
10. It is fully programmable, with its own sophisticated computer language
(§4). Repetitive procedures can easily be automated by user-written scripts (§3.5). It is easy to write your own functions (§B),
and not too difficult to write whole packages if you invent some new
analysis;
11. All source code is published, so you can see the exact algorithms being
used; also, expert statisticians can make sure the code is correct;
12. It can exchange data in MS-Excel, text, fixed and delineated formats
(e.g. CSV), so that existing datasets are easily imported (§6), and results
computed in R are easily exported (§7).
13. Most programs written for the commercial S-PLUS program will run
unchanged, or with minor changes, in R (§2.3.1
5. Il ne limite pas l'utilisateur à un ensemble de procédures ou d'options, à une méthode presse-bouton tout en utilisant les packages déjà intégrés dans R.
6. Il fournit des outils consistants (bibliothèques, language,...) qui permettent de travailler avec des objets complexes de grande taille.
7. Il existe une documentation technique complète à laquelle participent les utilisateurs, des tutoriaux adaptés à des usages différents et aussi plusieurs bons livres sur les méthodes statistiques qui utilisent R (ou S) pour l'illustration.
8. Il est entièrement programmable, les procédures répétitives peuvent facilement être automatisées par des scripts écrits par l'utilisateur. Il est facile d'écrire ses propres fonctions, et pas trop compliqué d'écrire des paquets entiers pour implémenter de nouveaux algorithmes.
9. Le code source est publié, ainsi vous avez accès aux algorithmes exacts avec une validation possible les statisticiens experts.
10. Il peut échanger des données en format MS-Excel, texte, format fixe et délimité(CSV,...), de sorte que les jeux de données existants sont facilement importés, et les résultats calculés en R facilement exportables.
11. La plupart des programmes écrits avec S-PLUS fonctionneront sans modification, ou avec des changements mineurs, dans R.
### Inconvénients
R présentent quelques inconvénients:
* L'utilisateur doit définir lui-même la séquence des analyses et les exécuter pas à pas, cependant, il est facile de créer des scripts avec toutes les étapes dans les éditeurs des interfaces utilisateurs de R (dans ce cours RStudio).
* L'utilisateur doit apprendre à penser autrement la gestion de ses données, de penser les objets R comme des classes ce qui lui permettra de bénéficier des avantages des langages objet. Les méthodes opérant sur un objet en fonction de sa classe.
* L'utilisateur doit apprendre un langage, à la fois pour les commandes mais aussi pour la spécification des analyses statistiques.
1. L'utilisateur doit définir lui-même la séquence des analyses et les exécuter pas à pas, cependant, il est facile de créer des scripts avec toutes les étapes dans les éditeurs des interfaces utilisateurs de R (dans ce cours RStudio).
2. L'utilisateur doit apprendre à penser autrement la gestion de ses données, de penser les objets R comme des classes ce qui lui permettra de bénéficier des avantages des langages objet. Les méthodes opérant sur un objet en fonction de sa classe.
3. L'utilisateur doit apprendre un langage, à la fois pour les commandes mais aussi pour la spécification des analyses statistiques.
### Alternatives
There are many ways to do computational statistics; this section discusses
them in relation to R. None of these programs are open-source, meaning
that you must trust the company to do the computations correctly.
#### S-PLUS
#### Statistical packages : SPSS, BMDP,SAS, Statistica, Minitab, Systat,Genstat,...
#### Applied mathematics programs
Il y a d'autres logiciels qui permettent de faire des calculs statistiques et du traitement de données, ils peuvent souvent interagir entre eux avec la possibilité de programmer ses propres algorithmes ou d'interagir avec R. Aucun d'entre eux n'est open-source, ce qui signifie que vous devez faire confiance à l'entreprise pour faire les calculs correctemen
- S-PLUS: : implémentation commerciale du langage S di usée par TIBCO.
- SAS: un concurrent de S-PLUS, très utilisée dans l'industrie, programmable.
- [Des programmes statistiques spécifques](http://www.stata.com/links/statistical-software-providers/).
- Tableurs: Microsoft Excel (Data Analysis. . . ),