Valid XHTML     Valid CSS2    

Listing du fichier intror1.php

 

00001     <?php
00002     
# # (gH) -_- intror1.php ; TimeStamp (unix) : 24 Mai 2015 vers 13:29
00003     
00004     
error_reporting(E_ALL | E_NOTICE | E_STRICT) ;
00005     
00006     include_once(
"std7.php") ;
00007     include_once(
"intror_inc.php") ;
00008     include_once(
"../../statuno7.php") ;
00009     
00010     
$numSerie
= 1 ;
00011     
debutPageExoScr1
($numSerie) ;
00012     
00013     
## -------------------------------------------------------------------------------------------
00014     
00015     
sdl
(3) ; echo cmt(' pour afficher toutes les solutions : intror1.php?solutions=1') ; sdl(3) ;
00016     
00017     
## -------------------------------------------------------------------------------------------
00018     
00019     
p
("texte") ;
00020     echo
"" ;
00021     
finp() ;
00022     
debutSection() ;
00023     
00024     
$tableauDesRubriques = array() ;
00025     
$idr
= 0 ;
00026     
$idr
++; $tableauDesRubriques[$idr] = "Installation et d&eacute;couverte de $R " ;
00027     
$idr
++; $tableauDesRubriques[$idr] = "Mode interactif, sessions et mode ".em("batch") ;
00028     
$idr
++; $tableauDesRubriques[$idr] = "Structures de donn&eacute;es et affichages" ;
00029     
$idr
++; $tableauDesRubriques[$idr] = "Lectures de fichiers avec $R" ;
00030     
$idr
++; $tableauDesRubriques[$idr] = "Calculs simples et manipulations &eacute;l&eacute;mentaires en $R" ;
00031     
$idr
++; $tableauDesRubriques[$idr] = "Documentation et syst&egrave;me d'aide" ;
00032     
$idr
++; $tableauDesRubriques[$idr] = "Fonctions et packages, bioconductor" ;
00033     
$idr
++; $tableauDesRubriques[$idr] = "Avantages et inconv&eacute;nients de $R " ;
00034     
$idr
++; $tableauDesRubriques[$idr] = "Comparaison des diff&eacute;rentes interfaces pour $R " ;
00035     
$idr
++; $tableauDesRubriques[$idr] = "R versus les autres logiciels statistiques " ;
00036     
$idr
++; $tableauDesRubriques[$idr] = "Cours de $R en ligne et en fran&ccedil;ais" ;
00037     
$tdmCRLM
= new tdm($tableauDesRubriques) ;
00038     
$tdmCRLM
->titre() ;
00039     
$tdmCRLM
->menu("oui","oui","nou") ;
00040     
00041     
pvide() ;
00042     
00043     
p() ;
00044      echo
"Il est possible d'affintror_inc.phpicher toutes les solutions via "
.href("intror1.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ;
00045     
finp() ;
00046     
00047     
finSection() ;
00048     
00049     
debutSection() ;
00050     
$numExo
= 0 ;
00051     
00052     
## -------------------------------------------------------------------------------------------
00053     
00054     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Installation et d&eacute;couverte de $R : installation, syst&egrave;mes d'aide
00055     
00056     ## -------------------------------------------------------------------------------------------
00057     
00058     
blockquote() ;
00059     
00060     
blockquote() ;
00061     
00062     
p
("texte") ;
00063     echo
"Qu'est-ce que le logiciel
$R&nbsp;? " ;
00064     echo
"Comment l'installer, sur Windows, MacOs, Linux&nbsp;? " ;
00065     
finp() ;
00066     
00067     
finblockquote() ;
00068     
00069     
solution
($numExo,$numSerie) ;
00070     
00071     
p
("texte") ;
00072     echo
"R est un logiciel statistique g&eacute;n&eacute;ral "
.b("gratuit").". Il se compose de commandes et d'un langage de programmation. " ;
00073     echo
" Ce dernier fournit &agrave;
$R toute sa richesse : de nombreux utilisateurs et professionnels mettent &agrave; disposition sur le Web " ;
00074     echo
" leurs donn&eacute;es, leurs programmes et des textes d'aides regroup&eacute;s sous forme de "
.em("packages").". Il y avait en ao&ucirc;t 2013 aux environs de 4750 packages " ;
00075     echo
" disponibles, plus de 5400 d&eacute;but avril 2014 et 6685 en mai 2015." ;
00076     
finp() ;
00077     
00078     
p
("texte") ;
00079     echo
"La liste des packages
$R est &agrave; l'adresse ".href("http://cran.r-project.org/web/packages/available_packages_by_name.html","available_packages","gbleuf nou").". " ;
00080     echo
" Nous verrons plus tard comment nous y retrouver." ;
00081     
finp() ;
00082     
00083     
p
("texte") ;
00084     echo
"La richesse et la qualit&eacute; des graphiques produits par
$R en font un ".href("intror3.php#graphiques","logiciel de pr&eacute;sentation de donn&eacute;es","grouge")." incomparable " ;
00085     echo
" et non pas uniquement un logiciel statistique." ;
00086     
finp() ;
00087     
00088     
p
("texte") ;
00089     echo
"R est un logiciel tr&egrave;s complet&nbsp;: il permet de traiter aussi bien des donn&eacute;es g&eacute;nomiques que m&eacute;dicales, &eacute;conomiques, g&eacute;ographiques, &eacute;cologiques, biochimiques..." ;
00090     
finp() ;
00091     
00092     
p
("texte") ;
00093     echo
"De plus le projet "
.href("http://www.bioconductor.org/","bioconductor")." qui traite de bioinformatique et de donn&eacute;es " ;
00094     echo
" g&eacute;nomiques, dont celles issues de " ;
00095     echo
href
("http://www.bioconductor.org/packages/release/bioc/html/marray.html","puces &agrave; ADN") ;
00096     echo
" et autres technologies " ;
00097     echo
href
("http://www.bioconductor.org/packages/release/data/annotation/html/IlluminaHumanMethylation27k.db.html","NGS") ;
00098     echo
", est bas&eacute; sur
$R. Il poss&egrave;de des propres packages, soit en gros " ;
00099     echo
" 1500 packages suppl&eacute;mentaires (ao&ucirc;t 2013), 2150 en 2015. " ;
00100     
$bio
= "http://www.bioconductor.org/packages/release/BiocViews.html#___Software" ;
00101     echo
"La liste compl&eacute;mentaires des packages
$R pour bioconductor est &agrave; l'adresse ".href($bio,"BiocViews","gvertf").". " ;
00102     
finp() ;
00103     
00104     
p
("texte") ;
00105     echo
"Pour installer
$R, il suffit de se rendre sur le site officiel nomm&eacute; " ;
00106     echo
href
("http://cran.r-project.org/","CRAN","gbleuf nou")." et de t&eacute;l&eacute;charger l'ex&eacute;cutable correspondant au syst&egrave;me d'exploitation souhait&eacute; (Windows, MacOs, Unix). " ;
00107     echo
" Pour Linux (Ubuntu), une page sp&eacute;ciale explique comment installer
$R via " ;
00108     echo
href
("http://cran.r-project.org/bin/linux/ubuntu/","sudo&nbsp;apt-get","gnoir nou").". " ;
00109     
finp() ;
00110     
00111     
00112     
p
("texte") ;
00113     echo
"Le " ;
00114     echo
href
("http://cran.r-project.org/","CRAN","gbleuf nou")." est une partie du site officiel de $R nomm&eacute; ";
00115     echo
href
("http://www.r-project.org/","R-project","grouge nou")." qui dispose de nombreux sites mirroirs dans le monde entier. " ;
00116     
finp() ;
00117     
00118     
finsolution() ;
00119     
00120     
finblockquote() ;
00121     
00122     
## -------------------------------------------------------------------------------------------
00123     
00124     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Mode interactif, sessions et mode batch
00125     
00126     ## -------------------------------------------------------------------------------------------
00127     
00128     
blockquote() ;
00129     
00130     
blockquote() ;
00131     
00132     
p
("texte") ;
00133     echo
"Quel est la diff&eacute;rence entre le mode interactif et le mode "
.em("batch")."&nbsp;?" ;
00134     
finp() ;
00135     
00136     
p
("texte") ;
00137     echo
"Expliquer ce que fait chaque instruction du fichier ci-dessous si l'on ex&eacute;cute dans une session
$R. " ;
00138     echo
" Les num&eacute;ros de ligne ne font pas partie des instructions. Il y a des lignes vides. " ;
00139     
finp() ;
00140     
00141     
pre_fichier
("session_eno.txt","cadrebleu") ;
00142     
00143     
finblockquote() ;
00144     
00145     
solution
($numExo,$numSerie) ;
00146     
00147     
p
("texte") ;
00148     echo
"Il y a deux mode principaux d'utilisation de
$R : le mode interactif et le mode traitement par lots ou ".em("batch").". " ;
00149     echo
" En mode interactif, on tape une commande et
$R r&eacute;pond. On tape alors une autre commande et $R r&eacute;pond &agrave; nouveau, etc. " ;
00150     echo
" En mode traitement par lots, on fournit &agrave;
$R un ensemble de commandes &agrave; ex&eacute;cuter et $R les traite les unes &agrave; la suite " ;
00151     echo
" des autres. Il est aussi possible, en mode interactif, d'ex&eacute;cuter des paquets d'instructions..." ;
00152     
finp() ;
00153     
00154     
p
("texte") ;
00155     echo
"Les lignes vides ne servent &agrave; rien en session interactive puisque
$R n'en fait rien. " ;
00156     echo
" Par contre en mode batch, cela peut servir &agrave; a&eacute;rer le texte des instructions, des r&eacute;sultats... " ;
00157     
finp() ;
00158     
00159     
p
("texte") ;
00160     echo
"La ligne 1 r&eacute;alise une affectation. "
.b("1:10")." est la suite des entiers de 1 &agrave; 10 et $R met ces " ;
00161     echo
" valeurs dans la variable "
.b("v").", ce qui en fait un vecteur, dans la terminologie de $R " ;
00162     echo
" (il ne s'agit pas exactement de la notion de vecteur comme en math&eacute;matique, mais cela y ressemble fortement). " ;
00163     echo
" On ne voit rien de plus &agrave; l'&eacute;cran car il s'agit d'une affectation en m&eacute;moire. " ;
00164     
finp() ;
00165     
00166     
p
("texte") ;
00167     echo
"La ligne 2 effectue le calcul de la moyenne arithm&eacute;tique de v " ;
00168     echo
" &agrave; l'aide de la fonction "
.hrrr("mean","","","gvert nou").". " ;
00169     echo
" Comme il n'y a pas d'affectation, en mode interactif,
$R affiche le r&eacute;sultat." ;
00170     echo
" En mode batch, suivant les options, la moyenne est ou n'est pas affich&eacute;e. " ;
00171     
finp() ;
00172     
00173     
p
("texte") ;
00174     echo
"La ligne 4 effectue le calcul de la moyenne arithm&eacute;tique de v et demande explicitement &agrave;
$R d'afficher ce r&eacute;sultat." ;
00175     echo
" Quel que soit le mode, la moyenne est donc affich&eacute;e. " ;
00176     
finp() ;
00177     
00178     
p
("texte") ;
00179     echo
"La ligne 5 effectue le calcul de la moyenne arithm&eacute;tique de v et les parenth&egrave;ses forcent
$R &agrave; afficher ce r&eacute;sultat en mode interactif." ;
00180     echo
" C'est plus court &agrave; &eacute;crire que la ligne 4. " ;
00181     
finp() ;
00182     
00183     
p
("texte") ;
00184     echo
"La ligne 6 effectue le calcul de la moyenne arithm&eacute;tique de v et met le r&eacute;sultat dans la variable nomm&eacute;e "
.b("meanv").". " ;
00185     echo
" Il est conseill&eacute; d'utiliser des noms (ou \"identificateurs\") d'au moins 3 lettres et, si possible, explicite. " ;
00186     echo
" Dans cette ligne 6, le symbole # (di&egrave;se) et ce qui suit est un commentaire et est ignor&eacute; par
$R. " ;
00187     echo
" Il est conseill&eacute; de commenter et de documenter son code
$R pour pouvoir le relire, comme " ;
00188     echo
" par exemple "
.b("sdcv&nbsp;&lt;-&nbsp;sum(&nbsp;v*v&nbsp;)&nbsp;#&nbsp;sdcv = somme des carr&eacute;s des valeurs").". " ;
00189     
finp() ;
00190     
00191     
p
("texte") ;
00192     echo
"La ligne 8 effectue le calcul de la moyenne arithm&eacute;tique tronqu&eacute;e du vecteur indiqu&eacute; entre parenth&egrave;ses avec un &eacute;cr&eacute;mage de 50&nbsp;% " ;
00193     echo
" (aucune importance si vous ne comprenez pas ce que cela veut dire, c'est juste pour l'exemple, nous y reviendrons). ";
00194     echo
" Les deux arguments de la fonction " ;
00195     echo
hrrr
("mean","","","gvert nou") ;
00196     echo
" ont &eacute;t&eacute; nomm&eacute;s pour faciliter la lecture de l'instruction. Il aurait &eacute;t&eacute; possible d'&eacute;crire " ;
00197     echo
b
("mean(&nbsp;c(1:10,15:18),&nbsp; 0.5&nbsp;)")." afin d'obtenir le m&ecirc;me r&eacute;sultat mais de fa&ccedil;on moins compr&eacute;hensible. " ;
00198     echo
b
("c(1:10,15:18)")." affectue la concat&eacute;nation des deux vecteurs ".b("1:10")." et ".b("15:18").", " ;
00199     echo
" c'est-&agrave;-dire que
$R en fait un seul vecteur en les mettant bout &agrave; bout. " ;
00200     
finp() ;
00201     
00202     
p
("texte") ;
00203     echo
"La ligne 9 effectue plusieurs calculs en m&eacute;moire sur une m&ecirc;me ligne, ce qui n'est pas tr&egrave;s conseill&eacute;. " ;
00204     echo
" La variable x prend la valeur 1, puis y prend la valeur 2 (via le calcul x+1) et enfin x est incr&eacute;ment&eacute; de 3, c'est-&agrave;-dire augment&eacute; " ;
00205     echo
" de 3. x vaut donc 4. Mais
$R n'affiche rien. " ;
00206     
finp() ;
00207     
00208     
p
("texte") ;
00209     echo
"La ligne 11 permet de quitter
$R. Nous avons r&eacute;pondu y pour ".em("yes")." afin de sauvegarder ce que nous avons cr&eacute;&eacute;." ;
00210     
finp() ;
00211     
00212     
p
("texte") ;
00213     echo
"Voici une copie de l'ex&eacute;cution des commandes avec les r&eacute;ponses &eacute;ventuelles de
$R&nbsp;:" ;
00214     
finp() ;
00215     
00216     
pre_fichier
("session_sol.txt","cadrejaune") ;
00217     
00218     
finsolution() ;
00219     
00220     
finblockquote() ;
00221     
00222     
## -------------------------------------------------------------------------------------------
00223     
00224     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Structures de donn&eacute;es et affichages
00225     
00226     ## -------------------------------------------------------------------------------------------
00227     
00228     
blockquote() ;
00229     
00230     
blockquote() ;
00231     
00232     
p
("texte") ;
00233     echo
" Quelles sont les structures de donn&eacute;es en
$R&nbsp;? Comment fait-on pour ne voir que le d&eacute;but des donn&eacute;es, ou la fin&nbsp;?" ;
00234     
finp() ;
00235     
00236     
p
("texte") ;
00237     echo
" Comment sauvegarder des variables de session&nbsp;?" ;
00238     
finp() ;
00239     
00240     
finblockquote() ;
00241     
00242     
solution
($numExo,$numSerie) ;
00243     
00244     
p
("texte") ;
00245     echo
"Les principales structures de donn&eacute;es sont les vecteurs, les matrices, les listes et les "
.em("data frames").". " ;
00246     echo
" Toutes les variables sont des "
.b("objets")." et tout est objet, y compris les fonctions que l'on peut cr&eacute;er." ;
00247     echo
" Pour cr&eacute;er une variable, on utilise soit une fonction explicite, comme " ;
00248     echo
hrrr
("assignOps","","&lt;-","gvert nou").", " ;
00249     echo
hrrr
("c","","","gvert nou").", " ;
00250     echo
hrrr
("vector","","","gvert nou")." ou " ;
00251     echo
hrrr
("matrix","","","gvert nou") ;
00252     echo
", soit une des notations " ;
00253     echo
" ou une des conversions automatiques de
$R." ;
00254     
finp() ;
00255     
00256     
p
("texte") ;
00257     echo
"De fa&ccedil;on simpliste, un vecteur et une liste ont une longueur alors qu'une matrice et un data frame ont deux dimensions, &agrave; savoir le nombre " ;
00258     echo
" de lignes ("
.em("row")." en anglais) et le nombre de colonnes (".em("column")." en anglais). Les fonctions associ&eacute;es sont " ;
00259     echo
hrrr
("length","","","gvert nou").", " ;
00260     echo
hrrr
("dim","","","gvert nou").", " ;
00261     echo
hrrr
("nrow","","","gvert nou")." et " ;
00262     echo
hrrr
("nrow","base","ncol()","gvert nou").". " ;
00263     
finp() ;
00264     
00265     
p
("texte") ;
00266     echo
"La fonction " ;
00267     echo
hrrr
("c","","","gvert nou") ;
00268     echo
" permet de concat&eacute;ner des valeurs pour en faire un vecteur, mais on peut la m&eacute;moriser en imaginant que "
.hrrr("c","","","gvert nou")." signifie " ;
00269     echo
b
("construire")." ou ".b("cr&eacute;er").". " ;
00270     echo
"La fonction " ;
00271     echo
hrrr
("rep","","","gvert nou") ;
00272     echo
" cr&eacute;e un vecteur par r&eacute;p&eacute;tition alors que la fonction " ;
00273     echo
hrrr
("seq","","","gvert nou") ;
00274     echo
" produit un vecteur par s&eacute;quence. La notation "
.b(":")." (le symbole deux-points) en est un r&eacute;sum&eacute; pour les param&egrave;tres standards." ;
00275     
finp() ;
00276     
00277     
p
("texte") ;
00278     echo
"La notation en crochets droits [ et ] permet de s&eacute;lectionner des lignes ou des groupes de lignes et des colonnes ou des " ;
00279     echo
" groupes de colonnes. La fonction " ;
00280     echo
hrrr
("head","utils","","gvert nou") ;
00281     echo
" affiche le d&eacute;but d'une structure alors que " ;
00282     echo
hrrr
("head","utils","tail()","gvert nou") ;
00283     echo
" en affiche la fin. " ;
00284     
finp() ;
00285     
00286     
p
("texte") ;
00287     echo
"Voici une d&eacute;monstration de toutes ces fonctions (vous pouvez copier/coller le texte du cadre bleu pour obtenir ce qu'il y a dans le cadre jaune)&nbsp;:" ;
00288     
finp() ;
00289     
00290     
entree_R
("strudon.r") ;
00291     
pre_fichier
("strudon.txt","cadrejaune") ; # copie de strudon.sor encodage iso
00292     
00293     
p
("texte") ;
00294     echo
"Pour sauvegarder des variables de session, on peut utiliser la fonction " ;
00295     echo
hrrr
("save","","","gvert nou") ;
00296     echo
". " ;
00297     echo
" On peut alors restaurer ces variables avec " ;
00298     echo
hrrr
("load","","","gvert nou") ;
00299     echo
". " ;
00300     echo
" Dans de nombreux environnements en mode interactif, toutes les variables courantes sont sauvegard&eacute;es lorsqu'on quitte
$R. " ;
00301     
finp() ;
00302     
00303     
p
("texte") ;
00304     echo
"Les listes et les "
.em("data frame")." seront pr&eacute;sent&eacute;es dans la ".href("intror2.php","demi-journ&eacute;e 2","grouge nou").". " ;
00305     
finp() ;
00306     
00307     
finsolution() ;
00308     
00309     
finblockquote() ;
00310     
00311     
## -------------------------------------------------------------------------------------------
00312     
00313     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Lectures de fichiers avec $R
00314     
00315     ## -------------------------------------------------------------------------------------------
00316     
00317     
blockquote() ;
00318     
00319     
blockquote() ;
00320     
00321     
p
("texte") ;
00322     echo
"Comment fait-on pour lire des donn&eacute;es dans un fichier&nbsp;?" ;
00323     echo
" Peut-on lire des fichiers sur Internet&nbsp;?" ;
00324     
finp() ;
00325     
00326     
p
("texte") ;
00327     echo
"On pourra utiliser les fichiers " ;
00328     echo
href
("data01.txt") ;
00329     echo
", " ;
00330     echo
href
("data02.txt") ;
00331     echo
", " ;
00332     echo
href
("data03.txt") ;
00333     echo
", " ;
00334     echo
href
("data04.csv") ;
00335     echo
" et " ;
00336     echo
href
("data05.xls") ;
00337     echo
" pour tester les lectures, en local comme sur internet. " ;
00338     
finp() ;
00339     
00340     
p
("texte") ;
00341     echo
em
("Questions sp&eacute;cialis&eacute;es&nbsp;:") ;
00342     
finp() ;
00343     
00344     
blockquote() ;
00345     
00346     
p
("texte") ;
00347     echo
"&laquo;Je travaille avec le logiciel " ;
00348     echo
href
("http://www.mothur.org/","mothur") ;
00349     echo
". Puis-je en lire les donn&eacute;es avec
$R&nbsp;?&raquo;" ;
00350     
finp() ;
00351     
00352     
p
("texte") ;
00353     echo
"&laquo;Moi, j'utilise principalement des s&eacute;quences Fasta trouv&eacute;es sur Internet. " ;
00354     echo
" Comment les lire avec
$R&nbsp;?" ;
00355     echo
" Exemple de donn&eacute;es&nbsp;: le fichier " ;
00356     echo
href
("cl8npnu.fasta"). "&raquo;. " ;
00357     
#echo href("cl8npnu.fasta","???"). " (script Internet). " ;
00358     
finp() ;
00359     
00360     
p
("texte") ;
00361     echo
"&laquo;Moi, je ne m'int&eacute;resse qu'&agrave; la composition en AA de prot&eacute;ines " ;
00362     echo
" stock&eacute;es sur " ;
00363     echo
href
("http://www.uniprot.org/","Uniprot") ;
00364     echo
" dont je connais l'identifiant, comme par exemple " ;
00365     echo
href
("http://www.uniprot.org/uniprot/Q75LD9","Q75LD9")."&raquo;. " ;
00366     
finp() ;
00367     
00368     
p
("texte") ;
00369     echo
"&laquo;Je travaille surtout sur les titres d'articles de " ;
00370     echo
href
("http://www.ncbi.nlm.nih.gov/pubmed","PubMed").", comme celui-ci, r&eacute;f&eacute;renc&eacute; " ;
00371     echo
href
("http://www.ncbi.nlm.nih.gov/pubmed/11780146?tool=bioconductor","11780146").". Que peut $R pour moi dans ce domaine&nbsp;?" ;
00372     
finp() ;
00373     
00374     
p
("texte") ;
00375     echo
"&laquo;Comment obtenir la s&eacute;quence du g&egrave;ne X94991&nbsp;?&raquo;" ;
00376     
finp() ;
00377     
00378     
finblockquote() ;
00379     
00380     
finblockquote() ;
00381     
00382     
solution
($numExo,$numSerie) ;
00383     
00384     
p
("texte") ;
00385     echo
"Pour lire des donn&eacute;es dans un fichier, on utilise la fonction " ;
00386     echo
hrrr
("read.table","utils","","gvert nou") ;
00387     echo
" et les fonctions associ&eacute;es comme " ;
00388     echo
hrrr
("read.table","utils","read.csv()","gvert nou")." et " ;
00389     echo
hrrr
("read.xls","gdata","","grouge").". " ;
00390     echo
" A l'int&eacute;rieur d'une session
$R, il suffit de taper ";
00391     echo
b
("help(read.table())") ;
00392     echo
" pour avoir la m&ecirc;me aide que celle donn&eacute;e par le lien " ;
00393     echo
href
("http://finzi.psych.upenn.edu/R/library/utils/html/read.table.html","[...]read.table.html").". " ;
00394     
finp() ;
00395     
00396     
00397     
p
("texte") ;
00398     echo
"Un fichier-texte peut avoir une premi&egrave;re ligne sp&eacute;ciale qui contient les noms des colonnes. Il faut alors " ;
00399     echo
" utiliser le param&egrave;tre "
.b("header=TRUE").". Si chaque ligne contient un identifiant de ligne (mot unique), " ;
00400     echo
" on peut de plus utiliser le param&egrave;tre "
.b("row.names").". " ;
00401     
finp() ;
00402     
00403     
00404     
p
("texte") ;
00405     echo
"Voici des exemples de telles lectures. On dispose du fichier suivant nomm&eacute; "
.href("data01.txt") ;
00406     echo
" qui contient des distances en kilom&egrave;tres et des gains en euros et dont le contenu est " ;
00407     
finp() ;
00408     
00409     
pre_fichier
("data01.txt","cadre") ;
00410     
00411     
p
("texte") ;
00412     echo
"La premi&egrave;re ligne n'est pas sp&eacute;ciale et il n'y a pas d'identifiant de ligne. " ;
00413     echo
b
('read.table("data01.txt")') ;
00414     echo
" est donc suffisant. " ;
00415     
finp() ;
00416     
00417     
p
("texte") ;
00418     echo
"Supposons maintenant que "
.href("data02.txt") ;
00419     echo
" contient une ligne 1 qui indique le nom des variables (distance et gain) et dont le contenu est " ;
00420     
finp() ;
00421     
00422     
pre_fichier
("data02.txt","cadre") ;
00423     
00424     
p
("texte") ;
00425     echo
"Il faut donc utiliser " ;
00426     echo
b
('read.table(file="data02.txt",header=TRUE)') ;
00427     echo
". " ;
00428     
finp() ;
00429     
00430     
p
("texte") ;
00431     echo
"Enfin, "
.href("data03.txt") ;
00432     echo
" contient en plus en d&eacute;but de chaque ligne apr&egrave;s la premi&egrave;re, un identifiant de ligne. " ;
00433     
finp() ;
00434     
00435     
pre_fichier
("data03.txt","cadre") ;
00436     
00437     
p
("texte") ;
00438     echo
"On &eacute;crit alors " ;
00439     echo
b
('read.table(file="data03.txt",header=TRUE,row.names=1)') ;
00440     echo
". " ;
00441     
finp() ;
00442     
00443     
p
("texte") ;
00444     echo
"Pour lire un fichier "
.b(".csv")." comme ".href("data04.csv")." dont le contenu est " ;
00445     
finp() ;
00446     
00447     
pre_fichier
("data04.csv","cadre") ;
00448     
00449     
p
("texte") ;
00450     echo
"on &eacute;crit "
.b('read.csv("data04.csv")') ;
00451     echo
". " ;
00452     
finp() ;
00453     
00454     
00455     
p
("texte") ;
00456     echo
"Les fonctions " ;
00457     echo
b
("read.table()") ;
00458     echo
" et " ;
00459     echo
b
("read.csv()") ;
00460     echo
" font partie du package "
.b("utils")." qui est charg&eacute; automatiquement avec $R. " ;
00461     echo
" Par contre pour " ;
00462     echo
b
("read.xls()") ;
00463     echo
" qui fait partie du package "
.hrrp("gdata")." et qui n'est pas charg&eacute; automatiquement avec $R, " ;
00464     echo
" il faut installer le package (une fois pour toutes) et charger (&agrave; chaque session) le package avec " ;
00465     echo
hrrr
("library","","","gbleuf") ;
00466     echo
" avant de pouvoir l'utiliser. On pourra le v&eacute;rifier avec la lecture de "
.href("data05.xls").". " ;
00467     echo
" On peut aussi utiliser le package "
.hrrp("XLConnect")." avec ses fonctions " ;
00468     echo
hrrr
("loadWorkbook","XLConnect")." et " ;
00469     echo
hrrr
("/readWorksheet-methods","XLConnect","readWorksheet()")." mais on ne peut lire que des fichiers locaux. Ce package " ;
00470     echo
hrrp
("XLConnect")." est utilis&eacute; par ". hrrp("Rcmdr").". " ;
00471     
00472     
finp() ;
00473     
00474     
p
("texte") ;
00475     echo
"Il est d'usage d'affecter &agrave; une variable le r&eacute;sultat de la lecture, comme le montrent les instructions de l'extrait " ;
00476     echo
" de session
$R suivant. Toutes ces fonctions $R renvoient un ".em("data frame")." " ;
00477     echo
" qui ressemble \"un peu\" &agrave; une matrice." ;
00478     
finp() ;
00479     
00480     
pre_fichier
("datas.sor","cadrejaune") ;
00481     
00482     
p
("texte") ;
00483     echo
"Si on veut ex&eacute;cuter les instructions des lignes d'un fichier comme "
.href("essai_r.txt","essai.r") ;
00484     echo
" il faut utiliser la fonction " ;
00485     echo
b
("source()") ;
00486     echo
" avec peut-&ecirc;tre le param&egrave;tre "
.b('encoding')." pour g&eacute;rer les accents, soit le plus souvent " ;
00487     echo
b
('encoding="latin1"')."." ;
00488     
finp() ;
00489     
00490     
pre_fichier
("essai.r","cadre") ;
00491     
00492     
pre_fichier
("accents.sor","cadrejaune") ;
00493     
00494     
p
("texte") ;
00495     echo
em
("R&eacute;ponses aux questions sp&eacute;cialis&eacute;es&nbsp;:") ;
00496     
finp() ;
00497     
00498     
p
("texte") ;
00499     echo
"Pour " ;
00500     echo
href
("http://www.mothur.org/","mothur") ;
00501     echo
" il y a une fonction " ;
00502     echo
b
("import_mothur") ;
00503     echo
" dans le package nomm&eacute; " ;
00504     echo
href
("https://www.bioconductor.org/packages/release/bioc/html/phyloseq.html","phyloseq") ;
00505     echo
"." ;
00506     
finp() ;
00507     
00508     
p
("texte") ;
00509     echo
"Pour lire des s&eacute;quences Fasta, il n'y a que l'embarras du choix. Voici par exemple comment faire avec " ;
00510     echo
" la fonction " ;
00511     echo
b
("readAAStringSet()") ;
00512     echo
" du package " ;
00513     echo
href
("http://bioconductor.org/packages/release/bioc/html/Biostrings.html","Biostrings") ;
00514     echo
" de " ;
00515     echo
href
("http://www.bioconductor.org/packages/release/bioc/html/Biostrings.html","Bioconductor","gvert nou") ;
00516     echo
" puis avec la fonction " ;
00517     echo
hrrr
("read.fasta","seqinr") ;
00518     echo
" du package " ;
00519     echo
hrrp
("seqinr") ;
00520     echo
" avant d'utiliser " ;
00521     echo
" la fonction " ;
00522     echo
b
("read.fasta()") ;
00523     echo
" du package " ;
00524     echo
href
("https://www.bioconductor.org/packages/release/bioc/html/muscle.html","muscle") ;
00525     echo
"." ;
00526     
finp() ;
00527     
00528     
pre_fichier
("read_fasta_sor.txt","cadrejaune") ;
00529     
00530     
p
("texte") ;
00531     echo
"Pour obtenir les s&eacute;quences Fasta de prot&eacute;ines (ou leur composition en AA) dont on connait l'identifiant " ;
00532     echo
href
("http://www.uniprot.org/","Uniprot").", l&agrave; aussi, il n'y a que l'embarras du choix. Voici par exemple comment faire avec " ;
00533     echo
" la fonction " ;
00534     echo
hrrr
("getUniProt","protr") ;
00535     echo
" du package " ;
00536     echo
hrrp
("protr") ;
00537     echo
" puis avec la fonction " ;
00538     echo
hrrr
("util.fasta","CHNOSZ","") ;
00539     echo
" du package " ;
00540     echo
hrrp
("CHNOSZ") ;
00541     echo
". Il y aussi une fonction " ;
00542     echo
hrrr
("util.fasta","CHNOSZ","read.fasta()") ;
00543     echo
" dans ce package. " ;
00544     
finp() ;
00545     
00546     
pre_fichier
("uniprot_sor.txt","cadrejaune") ;
00547     
00548     
p
("texte") ;
00549     echo
"Via " ;
00550     echo
href
("http://www.bioconductor.org","Bioconductor","grouge") ;
00551     echo
" il est possible de consulter et d'interroger facilement " ;
00552     echo
href
("http://www.ncbi.nlm.nih.gov/pubmed","PubMed").", notamment avec le package " ;
00553     echo
href
("https://bioconductor.org/packages/release/bioc/html/annotate.html","annotate") ;
00554     echo
" et sa fonction " ;
00555     echo
b
("pubmed").". " ;
00556     echo
" Voici un exemple d'utilisation&nbsp;:" ;
00557     
finp() ;
00558     
00559     
entree_R
("pubmed.r") ;
00560     
sortie_R
("pubmed_sor.txt") ;
00561     
00562     
p
("texte") ;
00563     echo
"La page ouverte en automatique par le navigateur est " ;
00564     
$url
= "http://www.ncbi.nlm.nih.gov/pubmed/11780146%2C11886385%2C11884611?tool=bioconductor" ;
00565     echo
href
($url,"[...]pubmed/11780146%2C[...]") ;
00566     echo
"." ;
00567     
finp() ;
00568     
00569     
p
("texte") ;
00570      echo
" Pour rapatrier la s&eacute;quence du g&egrave;ne X94991, le plus simple est sans doute " ;
00571      echo
" d'utiliser la fonction " ;
00572      echo
href
("http://finzi.psych.upenn.edu/R/library/ape/html/read.GenBank.html","read.GenBank") ;
00573      echo
" du package "
.href("http://finzi.psych.upenn.edu/R/library/ape/html/00Index.html","ape")." (avec un " ;
00574      echo
" jeu de mots sur l'acronyme du package qui est mis pour " ;
00575      echo
b
(" Analyses of Phylogenetics and Evolution").")&nbsp;: " ;
00576     
finp() ;
00577     
00578     
entree_R
("geneX9.r") ;
00579     
sortie_R
("geneX9.sor") ;
00580     
00581     
p
("texte") ;
00582      echo
b
("Remarque&nbsp;:")." X94991 est d&eacute;crit au NCBI par " ;
00583      echo
href
("http://www.ncbi.nlm.nih.gov/nuccore/X94991","GI:1155087") ;
00584      echo
" et semble donc &ecirc;tre reli&eacute; &agrave; la " ;
00585      echo
href
("https://www.wikigenes.org/e/gene/e/7791.html","zyxine").". " ;
00586     
finp() ;
00587     
00588     
finsolution() ;
00589     
00590     
finblockquote() ;
00591     
00592     
## -------------------------------------------------------------------------------------------
00593     
00594     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Calculs simples et manipulations &eacute;l&eacute;mentaires en $R
00595     
00596     ## -------------------------------------------------------------------------------------------
00597     
00598     
blockquote() ;
00599     
00600     
blockquote() ;
00601     
00602     
p
("texte") ;
00603     echo
" Comment cr&eacute;er des variables, les lister, les supprimer&nbsp;?" ;
00604     echo
" Comment convertir des donn&eacute;es, par exemple de pouces en cm&nbsp;?" ;
00605     echo
" Comment recoder, par exemple avec la valeur 0 pour moins de 10 et 1 sinon&nbsp;?" ;
00606     echo
" Et pour trier des donn&eacute;es&nbsp;?" ;
00607     echo
"" ;
00608     
finp() ;
00609     
00610     
finblockquote() ;
00611     
00612     
solution
($numExo,$numSerie) ;
00613     
00614     
p
("texte") ;
00615     echo
"Pour cr&eacute;er une variable, il suffit de lui affecter une valeur. Ainsi "
.b("x&nbsp;&lt;-&nbsp;3")." cr&eacute;e la variable ".b("x") ;
00616     echo
" et lui affecte la valeur 3. Si "
.b("x")." existait d&eacute;j&agrave;, son ancien contenu est perdu et remplac&eacute; par 3." ;
00617     echo
"
$R n'est pas vraiment ".b("typ&eacute; explicitement")." dans la mesure o&ugrave; ".b("x")." peut changer de type, par exemple passer de " ;
00618     echo
" nombre &agrave; chaine de caract&egrave;res, sans que cela ne pose de probl&egrave;me." ;
00619     
finp() ;
00620     
00621     
00622     
p
("texte") ;
00623     echo
"Pour supprimer la variable x, on utilise la fonction " ;
00624     echo
hrrr
("rm","","","gvert nou").". " ;
00625     echo
"On ex&eacute;cute donc "
.b("rm(x)").". ".em("rm")." signifie ".em("remove").". " ;
00626     echo
"Pour connaitre la liste de toutes les variables, on peut taper " ;
00627     echo
hrrr
("ls","","","gvert nou") ;
00628     echo
" ou " ;
00629     echo
hrrr
("ls_str","utils","ls.str()","gvert nou").". " ;
00630     echo
"La fonction "
.hrrr("ls","","","gvert nou")." " ;
00631     echo
" liste les variables, d'o&ugrave; son abbr&eacute;viation en "
.b("ls")." " ;
00632     echo
" alors que "
.b("ls.str()")." essaie d'afficher les valeurs en chaine (string en anglais). " ;
00633     echo
" Il faut donc &ecirc;tre tr&egrave;s prudent(e) avec "
.b("rm(list=ls())")." car cela supprime toutes les variables courantes. " ;
00634     echo
href
("http://www.rstudio.com/ide/","Rstudio","grouge")." fournit et maintient la liste des variables courantes dans une fen&ecirc;tre s&eacute;par&eacute;e." ;
00635     
finp() ;
00636     
00637     
p
("texte") ;
00638     echo
"Pour effectuer un calcul en
$R, il faut utiliser la syntaxe des informaticiens&nbsp;: * pour la multiplication, " ;
00639     echo
" / pour la division, ** pour la puissance, mettre des parenth&egrave;ses pour les noms de fonctions comme log(), sinus()..." ;
00640     echo
" Comme
$R est ".b("vectoriel").", de nombreux calculs sont automatiquement r&eacute;alis&eacute;s sur chacun des &eacute;l&eacute;ments des vecteurs " ;
00641     echo
" ou de la matrice. Par exemple&nbsp;:" ;
00642     
finp() ;
00643     
00644     
pre_fichier
("calculs_sor.txt","cadrejaune") ;
00645     
00646     
p
("texte") ;
00647     echo
"Pour ajouter des valeurs &agrave; un vecteur, on peut utiliser la fonction " ;
00648     echo
hrrr
("c","","","gvert nou").". " ;
00649     echo
"Pour ajouter des valeurs &agrave; une matrice, on utilise les fonctions " ;
00650     echo
hrrr
("cbind","","","gvert nou") ;
00651     echo
" et " ;
00652     echo
hrrr
("cbind","","rbind()","gvert nou") ;
00653     echo
" mais il vaut mieux passer par " ;
00654     echo
hrrr
("transform","","","gvert nou") ;
00655     echo
" pour compl&eacute;ter un data frame." ;
00656     echo
" Via la fonction " ;
00657     echo
hrrr
("ifelse","","","gvert nou") ;
00658     echo
" on peut r&eacute;aliser des recodages simples. " ;
00659     echo
" Voici un exemple de telles manipulations." ;
00660     
finp() ;
00661     
00662     
pre_fichier
("transforme_sor.txt","cadrejaune") ;
00663     
00664     
p
("texte") ;
00665     echo
"On peut trier explicitement des donn&eacute;es avec la fonction " ;
00666     echo
hrrr
("sort","","","gvert nou") ;
00667     echo
" mais pour trier dans des structures, on a souvent recours &agrave; la fonction " ;
00668     echo
hrrr
("order","","","gvert nou")."&nbsp;:" ;
00669     
finp() ;
00670     
00671     
pre_fichier
("tris_sor.txt","cadrejaune") ;
00672     
00673     
finsolution() ;
00674     
00675     
finblockquote() ;
00676     
00677     
## -------------------------------------------------------------------------------------------
00678     
00679     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Documentation et syst&egrave;me d'aide
00680     
00681     ## -------------------------------------------------------------------------------------------
00682     
00683     
blockquote() ;
00684     
00685     
blockquote() ;
00686     
00687     
p
("texte") ;
00688     echo
"Comment apprendre &agrave; utiliser le logiciel
$R&nbsp;? " ;
00689     
finp() ;
00690     
00691     
p
("texte") ;
00692     echo
"O&ugrave; et comment obtenir de l'aide et de la documentation pour le logiciel
$R&nbsp;? " ;
00693     
finp() ;
00694     
00695     
finblockquote() ;
00696     
00697     
solution
($numExo,$numSerie) ;
00698     
00699     
p
("texte") ;
00700     echo
"Le "
.href("http://www.r-project.org/","site officiel de R","grouge nou")." a une rubrique " ;
00701     echo
href
("http://cran.r-project.org/manuals.html","manuals","gbleuf nou")." avec des manuels en anglais. " ;
00702     echo
" Heureusement, ces documents sont traduits dans plusieurs langues et chaque pays contribue &agrave; la " ;
00703     echo
" documentation g&eacute;n&eacute;rale dans la section "
.href("http://cran.r-project.org/other-docs.html","Contributed Documentation","gbleuf nou").". " ;
00704     
sdl() ;
00705     echo
" De plus, il y a aujourd'hui (2013) de nombreux ouvrages g&eacute;n&eacute;raux et aussi sp&eacute;cialis&eacute;s sur
$R, notamment chez Springer avec les s&eacute;ries " ;
00706     echo
href
("http://www.springer.com/series/6991?detailsPage=titles","Use R!","gbleuf nou")." et " ;
00707     echo
href
("http://www.springer.com/series/8770?detailsPage=titles","Pratique R","gbleuf nou").". " ;
00708     echo
" Voir par exemple nos pages "
.href("../Programmation_R/Programmation_avancee/progr.php?n=1&amp;m=e#livres","livres sur R")." et " ;
00709     echo
" "
.href("../Programmation_R/Programmation_avancee/progr.php?n=1&amp;m=s#ouvrages","ouvrages pour R").". " ;
00710     
00711     
finp() ;
00712     
00713     
p
("texte") ;
00714     echo
"A l'int&eacute;rieur de
$R, en mode interactif, on utilise la fonction ".b("help(f)")." pour avoir de l'aide sur la fonction ".b("f") ;
00715     echo
" et "
.b("example(f)")." pour voir des exemples d'utilisation. Ainsi ".b("help(median)")." montre les param&egrave;tres de la fonction ".b("median()") ;
00716     echo
" tandis que "
.b("example(lm)")." montre la fonction ".b("lm()")." en action. " ;
00717     echo
" L'aide par d&eacute;faut s'affiche dans une fen&ecirc;tre surgissante, mais si on tape "
.b("help.start()")." tout appel de l'aide s'affiche dans le navigateur. " ;
00718     
finp() ;
00719     
00720     
p
("texte") ;
00721     echo
"On trouve aussi des vid&eacute;os sur YouTube notamment qui montrent comment utiliser le logiciel
$R. Il faut chercher " ;
00722     echo
b
("R software")." et non pas seulement ".b("R").". " ;
00723     
sdl() ;
00724     echo
"Des sites comme "
; echo href("http://finzi.psych.upenn.edu/nmz.html","R Site Search","grouge nou")." et " ;
00725     echo
href
("http://www.rseek.org/","R seek","grouge nou")." sont &eacute;galement utiles. Nous conseillons &agrave; la " ;
00726     echo
href
("../Programmation_R/Programmation_avancee/progr.php?n=1&amp;m=s#duclert","solution de la question S1q13","gvertf nou")." d'autres sites fran&ccedil;ais et anglais " ;
00727     echo
" dont le site fran&ccedil;ais "
.href("http://www.duclert.org/Aide-memoire-R/Le-langage/Introduction.php","duclert").". " ;
00728     
finp() ;
00729     
00730     
00731     
p
("texte") ;
00732     echo
"Comme
$R est tr&egrave;s complet et tr&egrave;s riche en fonctions, on apprend en g&eacute;n&eacute;ral $R au fur et &agrave; mesure de ses " ;
00733     echo
" besoins. Comme chaque package a ses propres fonctions, il n'est pas possible de connaitre
$R enti&egrave;rement. " ;
00734     echo
" On estime g&eacute;n&eacute;ralement qu'en connaissant une petite centaine de fonctions g&eacute;n&eacute;rales, " ;
00735     echo
" on arrive &agrave; r&eacute;aliser la plupart des op&eacute;rations courantes en
$R." ;
00736     
finp() ;
00737     
00738     
p
("texte") ;
00739     echo
"Dans une session
$R, en plus de " ;
00740     echo
hrrr
("help","utils","","gvert nou")." " ;
00741     echo
" et "
.b("?")." (un point d'interrogation), on peut aussi utiliser " ;
00742     echo
hrrr
("apropos","utils","","gvert nou")." " ;
00743     echo
" et "
.b("??")." (deux points d'interrogation)." ;
00744     
finp() ;
00745     
00746     
finsolution() ;
00747     
00748     
finblockquote() ;
00749     
00750     
## -------------------------------------------------------------------------------------------
00751     
00752     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Fonctions et packages, bioconductor
00753     
00754     ## -------------------------------------------------------------------------------------------
00755     
00756     
blockquote() ;
00757     
00758     
blockquote() ;
00759     
00760     
p
("texte") ;
00761     echo
"Qu'est-ce qu'un package en
$R&nbsp;?" ;
00762     echo
" Comment s'y retrouver&nbsp;?" ;
00763     echo
" Comment installer, charger, d&eacute;-charger un package &nbsp;?" ;
00764     echo
" Quels sont les principaux packages &nbsp;?" ;
00765     echo
" Comment installer un package dans environnement contraint, par exemple si on'a pas le droit, comme &agrave; la fac, " ;
00766     echo
" d'&eacute;crire dans le r&eacute;pertoire de
$R&nbsp;?" ;
00767     echo
" Qu'est-ce que Bioconductor&nbsp;?" ;
00768     
finp() ;
00769     
00770     
finblockquote() ;
00771     
00772     
solution
($numExo,$numSerie) ;
00773     
00774     
p
("texte") ;
00775     echo
"Un package est un ensemble de fonctions, de donn&eacute;es, de textes d'aide et d'exemples d'utilisation. " ;
00776     echo
" Compte-tenu du grand nombre (plusieurs milliers) de packages, il faut en g&eacute;n&eacute;ral passer par les " ;
00777     echo
href
("http://cran.r-project.org/","task views")." du " ;
00778     echo
href
("http://cran.r-project.org/","CRAN") ;
00779     echo
" ou utiliser un syst&egrave;me de recherche comme " ;
00780     echo
href
("http://finzi.psych.upenn.edu/nmz.html","R Site Search") ;
00781     echo
" pour trouver ce qu'on cherche. " ;
00782     echo
" Il est &eacute;galement possible de chercher \"&agrave; l'aveuglette\" un mot particulier dans la " ;
00783     echo
href
("http://cran.r-project.org/web/packages/available_packages_by_name.html","liste longue des packages") ;
00784     echo
". " ;
00785     
finp() ;
00786     
00787     
p
("texte") ;
00788     echo
"On installe un package &agrave; l'aide la fonction " ;
00789     echo
hrrr
("install.packages","utils") ;
00790     echo
" et on le charge par ";
00791     echo
hrrr
("library").". ";
00792     echo
" Il n'est pas obligatoire (sauf en cas de conflit avec d'autres packages) de l'enlever de la " ;
00793     echo
" m&eacute;moire, car
$R ne garde pas trace des packages charg&eacute;s d'une session &agrave; l'autre. Si on doit vraiment " ;
00794     echo
" le d&eacute;-charger de la m&eacute;moire, on utilise " ;
00795     echo
hrrr
("detach").". ";
00796     echo
" Dans un environnement contraint, il faut utiliser le param&egrave;tre "
.b("lib")." pour sp&eacute;cifier un " ;
00797     echo
" emplacement local accessible en &eacute;criture. Voir par exemple notre ";
00798     echo
href
("../r_alafac.php",s_span("note locale","bleu"))." sur $R." ;
00799     
finp() ;
00800     
00801     
p
("texte") ;
00802     echo
"Pour connaitre la liste des jeux de donn&eacute;es fournis avec un package, il faut utiliser la fonction " ;
00803     echo
hrrr
("data","utils")." alors que la liste de tous les objets du package est obtenue via ";
00804     echo
hrrr
("ls").". ";
00805     echo
" Signalons que "
.b('help(package="nom_package")')." fournit la page index de l'aide et que " ;
00806     echo
b
("vignette(\"nom_package\")")." affiche le PDF associ&eacute; lorsqu'il existe." ;
00807     
finp() ;
00808     
00809     
p
("texte") ;
00810     echo
"Voici un exemple d'utilisation de ces fonctions&nbsp;:" ;
00811     
finp() ;
00812     
00813     
pre_fichier
("pkgs_sor.txt","cadrejaune") ;
00814     
00815     
p
("texte") ;
00816     echo
" Au risque de choquer ou de surprendre, il n'y a pas de package principal ou plus important qu'un autre. " ;
00817     echo
" Il y a des packages essentiels, charg&eacute;s d&egrave;s l'invocation de
$R, comme " ;
00818     echo
hrrp
("base").", " ;
00819     echo
hrrp
("stats").", " ;
00820     echo
hrrp
("graphics").", " ;
00821     echo
hrrp
("grDevices").", " ;
00822     echo
hrrp
("utils").", " ;
00823     echo
hrrp
("datasets")." et " ;
00824     echo
hrrp
("methods").", " ;
00825     echo
" mais aucun package n'est plus important qu'un autre. Tout d&eacute;pend de ce que l'on doit r&eacute;aliser comme t&acirc;che." ;
00826     
finp() ;
00827     
00828     
p
("texte") ;
00829      echo
"Bioconductor, dont l'adresse est "
.href("http://www.bioconductor.org/")." est un site qui fournit des " ;
00830     echo
em
("library")." $R orient&eacute;es analyse bioinformatique, puces &agrave; ADN et autres technologies NGS. " ;
00831     echo
"On y trouve par exemple les biblioth&egrave;ques telle que Affy ou Biobase qui &eacute;taient tr&egrave;s utilis&eacute;es dans l'analyse statistique " ;
00832     echo
" de ces puces &agrave; ADN dans les ann&eacute;es 2000. Aujourd'hui (2014), on y trouve des librairies pour " ;
00833     echo
href
("http://www.illumina.com/systems/miseq.ilmn","miseq").", " ;
00834     echo
href
("http://en.wikipedia.org/wiki/RNA-Seq","RNA-Seq").", " ;
00835     echo
href
("http://www.illumina.com/","illumina")."... " ;
00836     
finp() ;
00837     
00838     
p
("texte") ;
00839     echo
"Bioconductor fonctionne s&eacute;par&eacute;ment du CRAN et a son propre syst&egrave;me d'installation de packages. " ;
00840     echo
" En mars 2014, Bioconductor comptait plus de 1600 packages, r&eacute;partis en environ 750 packages de programmes, " ;
00841     echo
" 700 packages de donn&eacute;es d'annotations et 180 packages de donn&eacute;es exp&eacute;rimentales. " ;
00842     echo
" Pour utiliser Bioconductor, il faut &eacute;crire&nbsp;: " ;
00843     
finp() ;
00844     
00845     
pre_fichier
("bioclite.r","cadre") ;
00846     
00847     
p
("texte") ;
00848     echo
" Ceci installe les packages &eacute;l&eacute;mentaires de Bioconductor, dont " ;
00849     echo
href
("http://www.bioconductor.org/packages/release/bioc/html/Biobase.html","Biobase").". " ;
00850     
finp() ;
00851     
00852     
p
("texte") ;
00853     echo
" Pour installer un package, par exemple " ;
00854     echo
href
("http://www.bioconductor.org/packages/release/bioc/html/illuminaio.html","illuminaio") ;
00855     echo
" avec Bioconductor, il faut &eacute;crire" ;
00856     
finp() ;
00857     
00858     
pre_fichier
("biocinstall.r","cadre") ;
00859     
00860     
p
("texte") ;
00861     echo
" Comme tout package
$R, les packages $R de Bioconductor ont leur fichier PDF d'aide (ou \"vignette\"), mais pas toujours de jeux " ;
00862     echo
" de donn&eacute;es, car ceux-ci sont souvent gros et t&eacute;l&eacute;chargeables via des packages sp&eacute;cialis&eacute;s. " ;
00863     echo
" Compte-tenu de l'&eacute;volution rapide des technologies et des m&eacute;thodes associ&eacute;es, il y a aussi souvent en plus un " ;
00864     echo
" tutoriel sur l'utilisation du package. " ;
00865     
finp() ;
00866     
00867     
p
("texte") ;
00868     echo
" Il est clair que le nombre important de packages dans Bioconductor rend impossible la maitrise de l'ensemble des packages. " ;
00869     echo
" C'est pourquoi on trouve peu d'ouvrages comme ceux pr&eacute;sent&eacute;s ci-dessous " ;
00870     echo
" mais plut&ocirc;t des articles citant ou utilisant ces packages." ;
00871     
finp() ;
00872     
00873     
$book1
= "http://www.springer.com/statistics/life+sciences%2C+medicine+%26+health/book/978-0-387-77239-4" ;
00874     
$book2
= "http://www.springer.com/computer/bioinformatics/book/978-0-387-25146-2" ;
00875     
00876     
blockquote() ;
00877     
table
(0,20,"collapse") ;
00878     
00879     
tr() ;
00880     
td
("C") ; echo href($book1,img("biocase.jpg","",145)) ; fintd() ;
00881     
td
("C") ; echo href($book2,img("bioinfo.jpg","",145)) ; fintd() ;
00882     
fintr() ;
00883     
00884     
tr() ;
00885     
td
("C") ; echo href($book1,"Bioconductor Case Studies")." (2008)" ; fintd() ;
00886     
td
("C") ; echo href($book2,"Bioinformatics[...] using R[...]")." (2005)" ; fintd() ;
00887     
fintr() ;
00888     
00889     
fintable() ;
00890     
finblockquote() ;
00891     
00892     
00893     
00894     
p
("texte") ;
00895     echo
"Pour une introduction rapide &agrave; Bioconductor et des exemples d'analyses avec Bioconductor, on pourra " ;
00896     echo
" notamment lire " ;
00897     echo
" en anglais " ;
00898     echo
href
("https://projets.pasteur.fr/attachments/788/Bioconductor-tutorial.pdf","Bioconductor-tutorial.pdf") ;
00899     echo
" et, en fran&ccedil;ais, " ;
00900     echo
href
("http://biologie.univ-mrs.fr/upload/p245/TP_Affy.pdf","TP_Affy.pdf") ;
00901     echo
" disponibles " ;
00902     echo
href
("Bioconductor-tutorial.pdf","ici") ;
00903     echo
" et " ;
00904     echo
href
("TP_Affy.pdf","l&agrave;") ;
00905     echo
" en version locale. " ;
00906     echo
" Pour une introduction aux statistiques simples et avanc&eacute;es en bioinformatique, nous vous conseillons au passage soit le document " ;
00907     echo
href
("http://cran.r-project.org/doc/contrib/Krijnen-IntroBioInfStatistics.pdf","Krijnen") ;
00908     echo
" du "
.href("http://cran.r-project.org/","CRAN")." (".href("Krijnen-IntroBioInfStatistics.pdf","copie locale","gbleuf nou").") " ;
00909     echo
" soit le document " ;
00910     echo
href
("http://media.readthedocs.org/pdf/a-little-book-of-r-for-bioinformatics/latest/a-little-book-of-r-for-bioinformatics.pdf","little-rbio") ;
00911     echo
" ("
.href("a-little-book-of-r-for-bioinformatics.pdf","copie locale","gbleuf nou")."). " ;
00912     
finp() ;
00913     
00914     
00915     
/*
00916     Bioconductor est un d&eacute;p&ocirc;t de biblioth&egrave;ques $R orient&eacute;es analyse bioinformatique et puces &agrave; ADN, on y retrouve les biblioth&egrave;que telle que Affy ou Biobase qui sont tr&egrave;s utilis&eacute; dans l'analyse statistique de ces dites puces &agrave; ADN. Dans cette nouvelle version de Bioconductor compil&eacute; pour $R 2.6 vous trouverez un certain nombres de nouveaut&eacute;es dans les biblioth&egrave;que pr&eacute;c&eacute;dement propos&eacute;es mais aussi un certain nombre de nouvelles.
00917     
00918     http://biologie.univ-mrs.fr/upload/p245/TP_Affy.pdf
00919     https://projets.pasteur.fr/attachments/788/Bioconductor-tutorial.pdf
00920     Projet pour l'analyse et la compr&eacute;hension des donn&eacute;es g&eacute;nomiques.
00921     */
00922     
00923     
00924     
finsolution() ;
00925     
00926     
finblockquote() ;
00927     
00928     
## -------------------------------------------------------------------------------------------
00929     
00930     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Avantages et inconv&eacute;nients de $R
00931     
00932     ## -------------------------------------------------------------------------------------------
00933     
00934     
blockquote() ;
00935     
00936     
blockquote() ;
00937     
00938     
p
("texte") ;
00939     echo
"Quels sont les avantages (les points forts) de
$R&nbsp;?" ;
00940     
finp() ;
00941     
00942     
p
("texte") ;
00943     echo
"Et ses inconv&eacute;nients (ses points faibles)&nbsp;?" ;
00944     
finp() ;
00945     
00946     
finblockquote() ;
00947     
00948     
solution
($numExo,$numSerie) ;
00949     
00950     
p
("texte") ;
00951     echo
"Les plus grands points forts de
$R sont sa gratuit&eacute; et le fait qu'il soit tr&egrave;s complet. Les autres grands logiciels statistiques comme " ;
00952     echo
"SAS" ;
00953     echo
" ou " ;
00954     echo
" Statistica" ;
00955     echo
" sont payants et encore&nbsp;: on ne les ach&egrave;te pas, on les loue pour quelques centaines d'euros par an et par ordinateur, " ;
00956     echo
" soit au final un co&ucirc;t tr&egrave;s &eacute;lev&eacute;. De plus ils ne couvrent pas tous les domaines scientifiques r&eacute;cents o&ugrave; on " ;
00957     echo
" a besoin des statistiques, notamment la bioinformatique." ;
00958     
finp() ;
00959     
00960     
00961     
p
("texte") ;
00962     echo
"Un autre point fort de
$R est sa modularit&eacute;. On apprend au fur et &agrave; mesure car la plupart des packages sont ind&eacute;pendants." ;
00963     
finp() ;
00964     
00965     
p
("texte") ;
00966     echo
"La facilit&eacute; d'utilisation est &agrave; la fois un avantage et un inconv&eacute;nient. Il est instantan&eacute; " ;
00967     echo
" d'utiliser la fonction " ;
00968     echo
hrrr
("mean")." ";
00969     echo
" et la fonction " ;
00970     echo
hrrr
("median","stats")." ";
00971     echo
" pour calculer respectivement la moyenne et la m&eacute;diane d'une s&eacute;rie de valeurs, mais comment savoir laquelle il faut " ;
00972     echo
" vraiment utiliser&nbsp;? De la m&ecirc;me fa&ccedil;on, toute m&eacute;thode complexe ou simplement r&eacute;cente est disponible mais comme " ;
00973     echo
" pour un menu dans un logiciel, il n'y a pas de recul conceptuel fourni, juste une ressource disponible, sauf &agrave; s'astreindre &agrave; lire l'aide." ;
00974     
finp() ;
00975     
00976     
p
("texte") ;
00977     echo
"La grande richesse des packages est aussi &agrave; la fois un avantage et un inconv&eacute;nient. Nous avons vu par exemple pr&eacute;c&eacute;demment " ;
00978     echo
" au moins trois fa&ccedil;ons de lire des s&eacute;quences Fasta avec des packages diff&eacute;rents. Devant la multitude, il est souvent " ;
00979     echo
" difficile de choisir." ;
00980     
finp() ;
00981     
00982     
div
("pluspetit") ;
00983     
pre_fichier
("dna_search.txt","cadrejaune") ;
00984     
findiv() ;
00985     
00986     
p
("texte") ;
00987     echo
"La syntaxe de
$R est simple mais technique et le nombre de param&egrave;tres &agrave; utiliser est un frein &agrave; la compr&eacute;hension. ";
00988     echo
" Heureusement, les valeurs par d&eacute;faut simplifient l'utilisation." ;
00989     
finp() ;
00990     
00991     
pre_fichier
("parms.txt","cadrejaune") ;
00992     
00993     
p
("texte") ;
00994     echo
"La syntaxe de
$R est simple, donc les calculs complexes peuvent se faire pas &agrave; pas " ;
00995     echo
" &agrave; condition de \"bien &eacute;crire\" les instructions." ;
00996     
finp() ;
00997     
00998     
pre_fichier
("bienecrire.txt","cadrebleu") ;
00999     
01000     
p
("texte") ;
01001     echo
"R est un langage puissant, concis et fonctionnel orient&eacute; traitement statistique, c'est pour cela qu'il est plus adapt&eacute; que " ;
01002     echo
" perl, php, python ou ruby pour r&eacute;aliser des analyses statistiques. " ;
01003     
finp() ;
01004     
01005     
pre_fichier
("applys.txt","cadrebleu") ;
01006     
01007     
p
("texte") ;
01008     echo
"R est orient&eacute;, entre autres, bioinformatique&nbsp;:" ;
01009     
finp() ;
01010     
01011     
div
("pluspetit") ;
01012     
pre_fichier
("ncbi.txt","cadrejaune") ;
01013     
findiv() ;
01014     
01015     
p
("texte") ;
01016     echo
"Comme inconv&eacute;nient de
$R, il ne faut pas oublier de citer, comme en C, le probl&egrave;me de d&eacute;pendance entre packages. " ;
01017     echo
" Certains packages ont besoin d'autres packages pour fonctionner, voire de programmes C, Fortran, de compilateurs... " ;
01018     echo
" pour &ecirc;tre install&eacute;s correctement. Il est donc conseill&eacute; d'utiliser le param&egrave;tre "
.b("dependencies=TRUE")." de la commande " ;
01019     echo
hrrr
("install.packages","utils","","gvert nou") ;
01020     echo
" du package "
.hrrp("utils").". " ;
01021     
finp() ;
01022     
01023     
p
("texte") ;
01024     echo
"Un dernier inconv&eacute;nient de
$R est l'h&eacute;t&eacute;rog&eacute;n&eacute;it&eacute; (parfois) de certaines syntaxes. " ;
01025     echo
" Ainsi, il faut &eacute;crire "
.b('help(package="gdata")') ;
01026     echo
" mais "
.b('ls("package:gdata")')." et " ;
01027     echo
" "
.b('detach("package:gdata")')."&nbsp;; de m&ecirc;me pour " ;
01028     echo
b
("lapply(X=lst,FUN=nchar)").", " ;
01029     echo
b
("sapply(X=lst,FUN=nchar)")." et " ;
01030     echo
b
("rapply(object=lst,f=nchar)").". " ;
01031     
finp() ;
01032     
01033     
p
("texte") ;
01034     echo
"Par contre la richesse de la syntaxe permet d'utiliser diff&eacute;rents contextes&nbsp;:" ;
01035     
finp() ;
01036     
01037     
pre_fichier
("accesdf.txt","cadre") ;
01038     
01039     
finsolution() ;
01040     
01041     
finblockquote() ;
01042     
01043     
## -------------------------------------------------------------------------------------------
01044     
01045     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Comparaison des diff&eacute;rentes interfaces pour $R
01046     
01047     ## -------------------------------------------------------------------------------------------
01048     
01049     
blockquote() ;
01050     
01051     
blockquote() ;
01052     
01053     
p
("texte") ;
01054     echo
" Quelles sont les diff&eacute;rentes interfaces pour utiliser
$R&nbsp;?" ;
01055     
finp() ;
01056     
01057     
p
("texte") ;
01058     echo
" Lesquelles fournissent "
.em("&laquo;juste un environnement de session&raquo;")."&nbsp;?" ;
01059     
finp() ;
01060     
01061     
p
("texte") ;
01062     echo
" Lesquelles sont d&eacute;di&eacute;es aux analyses statistiques&nbsp;?" ;
01063     
finp() ;
01064     
finblockquote() ;
01065     
01066     
solution
($numExo,$numSerie) ;
01067     
01068     
01069     
p
("texte") ;
01070     echo
"Pour les commandes et les sessions
$R, il y a une interface minimale sans menu ni multi-fen&eacute;trage qui s'obtient via " ;
01071     echo
b
("R") ;
01072     echo
" sous Linux et via " ;
01073     echo
b
("rterm.exe") ;
01074     echo
" sous Windows. " ;
01075     echo
"Une interface un peu plus &eacute;labor&eacute;e avec menu et multi-fen&eacute;trage est disponible via " ;
01076     echo
b
("R -g X11") ;
01077     echo
" et " ;
01078     echo
b
("R -g tk") ;
01079     echo
" sous Linux et via " ;
01080     echo
b
("rgui.exe") ;
01081     echo
" sous Windows. " ;
01082     echo
" Toutefois, nous conseillons d'utiliser plut&ocirc;t "
.href("http://www.rstudio.com/","Rstudio","gbleuf nou") ;
01083     echo
" qui est gratuit, lui aussi et disponible pour tous les syst&egrave;mes d'exploitation. " ;
01084     echo
" Voir la "
.href("../r_alafac.php","la rubrique &laquo;Avantages et inconv&eacute;nients de l'interface standard (IS) et de l'interface de RStudio (RS)&raquo;","gvertf nou") ;
01085     echo
" de la note locale sur
$R pour comprendre pourquoi Rstudio est plus adapt&eacute; &agrave; une utilisation r&eacute;guli&egrave;re " ;
01086     echo
" et surtout pourquoi il est le seul &agrave; permettre une production automatis&eacute;e des rapports et articles. " ;
01087     echo
" Ces interfaces fournissent "
.em("&laquo;juste un environnement de session&raquo;").", ce qui signifie qu'elles n'aident en aucun cas " ;
01088     echo
" &agrave; r&eacute;aliser des analyses statistiques via les menus. Par contre, elles permettent, plus ou moins bien, de visualiser les donn&eacute;es, " ;
01089     echo
" de changer de r&eacute;pertoire, de sauvegarder l'historique des commandes, les variables de la session etc." ;
01090     
finp() ;
01091     
01092     
p
("texte") ;
01093     echo
"Pour r&eacute;aliser des analyses statistiques (calculs et graphiques), il existe aussi des interfaces comme " ;
01094     echo
href
("http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/","Rcommander").", " ;
01095     echo
href
("http://rkward.sourceforge.net/","rkward")." et " ;
01096     echo
href
("http://rattle.togaware.com/","rattle").". " ;
01097     echo
" Une page tr&egrave;s officielle pour de telles interfaces est " ;
01098     echo
href
("http://www.sciviews.org/","sciviews").". " ;
01099     
finp() ;
01100     
01101     
p
("texte") ;
01102     echo
"Il peut &ecirc;tre plus ou moins difficile d'installer ces interfaces qui, si elles se lancent via le chargement d'un package, " ;
01103     echo
" font souvent appel &agrave; des ex&eacute;cutables ext&eacute;rieurs, &agrave; d'autres langages comme Tk, C, Fortran... et &agrave; des biblioth&egrave;ques graphiques comme GTK." ;
01104     
finp() ;
01105     
01106     
p
("texte") ;
01107     echo
"A l'exp&eacute;rience, " ;
01108     echo
href
("http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/","Rcommander").", " ;
01109     echo
" est assez agr&eacute;able &agrave; utiliser avec des menus en fran&ccedil;ais, " ;
01110     echo
href
("http://rkward.sourceforge.net/","rkward")." " ;
01111     echo
" est assez complet et propose de nombreuses fen&ecirc;tres " ;
01112     echo
" de visualisation. Par contre, " ;
01113     echo
href
("http://rattle.togaware.com/","rattle")." " ;
01114     echo
" est plus orient&eacute; data mining que statistiques. Il est conseill&eacute; de regarder la documentation de ces interfaces " ;
01115     echo
" gr&acirc;ce aux liens ci-dessous afin de se faire une id&eacute;e de ce qu'on peut en attendre, notamment via les copies d'&eacute;crans et les d&eacute;monstrations... " ;
01116     
finp() ;
01117     
01118     
01119     
blockquote() ;
01120     
01121     
table
(1,"9","collapse") ;
01122     
tr() ;
01123     
td
("C","valigntop") ; echo href("http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/",img("../../Bism/rcmdr.jpg","R commander",300)) ; fintd() ;
01124     
td
("C","valigntop") ; echo href("http://rkward.sourceforge.net/?content=screenshots",img("../../Bism/rkward.png","rkward",300)) ; fintd() ;
01125     
td
("C","valigntop") ; echo href("http://rattle.togaware.com/rattle-screenshots.html",img("../../Bism/rattle.png","rattle",300)) ; fintd() ;
01126     
fintr() ;
01127     
tr() ;
01128     
td
("C","tajaunec") ; echo href("http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/","&nbsp;R commander&nbsp;","bouton_fin vert_pastel nou") ; fintd() ;
01129     
td
("C","tajaunec") ; echo href("http://rkward.sourceforge.net/","&nbsp;rkward&nbsp;","bouton_fin vert_pastel nou") ; fintd() ;
01130     
td
("C","tajaunec") ; echo href("http://rattle.togaware.com/","&nbsp;rattle&nbsp;","bouton_fin vert_pastel nou") ; fintd() ;
01131     
fintr() ;
01132     
fintable() ;
01133     
finblockquote() ;
01134     
01135     
p
("texte") ;
01136     echo
"S'il peut &ecirc;tre rassurant d'utiliser une interface pour
$R, notamment au d&eacute;but pour d&eacute;couvrir les " ;
01137     echo
" fonctions, nous ne conseillons pas de les utiliser dans le cadre d'une utilisations soutenue. La raison " ;
01138     echo
" en est simple&nbsp;: pour reproduire des analyses et pour progresser, il faut avoir le code sous les yeux. " ;
01139     echo
" Avec les interfaces, tout se fait par clic-souris et rien n'est automatisable. De plus seuls les " ;
01140     echo
" param&egrave;tres les plus importants sont disponibles, et encore, pas forc&eacute;ment avec tous les choix possibles." ;
01141     
finp() ;
01142     
01143     
p
("texte") ;
01144     echo
"Il vaut donc mieux, selon nous, investir un peu plus dans la ligne de commande et l'&eacute;criture de scripts " ;
01145     echo
" que de cliquer... Dans la mesure o&ugrave; les interfaces affichent les commandes ex&eacute;cut&eacute;es via les menus, on apprend vite &agrave; " ;
01146     echo
" &eacute;crire ce qu'on veut faire et &agrave; param&egrave;trer avec des noms des fichiers diff&eacute;rents..." ;
01147     
finp() ;
01148     
01149     
p
("texte") ;
01150     echo
"Nous utiliserons de fa&ccedil;on synoptique et comparative ces interfaces dans la " ;
01151     echo
href
("intror4.php","s&eacute;ance 4").", &agrave; l'" ;
01152     echo
href
("intror4.php#tdm2","exercice 2","grouge").". " ;
01153     
finp() ;
01154     
01155     
finsolution() ;
01156     
01157     
finblockquote() ;
01158     
01159     
## -------------------------------------------------------------------------------------------
01160     
01161     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # $R versus les autres logiciels statistiques
01162     
01163     ## -------------------------------------------------------------------------------------------
01164     
01165     
blockquote() ;
01166     
01167     
p
("texte") ;
01168     echo
"Comment se situe
$R par rapport aux autres \"grands logiciels statistiques\"&nbsp;?" ;
01169     
finp() ;
01170     
01171     
solution
($numExo,$numSerie) ;
01172     
01173     
p
("texte") ;
01174     echo
"Si
$R &eacute;tait au d&eacute;but un concurrent, $R est maintenant un \"plus\" &agrave; interfacer pour les grands logiciels. " ;
01175     echo
" Voir par exemple quelques arguments via la " ;
01176     echo
href
("../Eda/edacrs.php?n=5&amp;m=e#q10","question 10","grouge nou")." de notre cours " ;
01177     echo
href
("../Eda/eda.php","EDA","gnoir nou")." et " ;
01178     echo
" la "
.href("../Eda/edacrs.php?n=5&amp;m=s#interfaces","r&eacute;ponse associ&eacute;e","gvert nou")."." ;
01179     
finp() ;
01180     
01181     
p
("texte") ;
01182     echo
"Il est m&ecirc;me possible d'utiliser
$R via Excel. Donc $R peut servir de compl&eacute;ment, notamment lorsque les " ;
01183     echo
" autres logiciels sont d&eacute;j&agrave; install&eacute;s. " ;
01184     echo
" Pour quelqu'un(e) habitu&eacute;(e) &agrave; utiliser Statistica avec ses menus complets et dynamiques, ses sorties " ;
01185     echo
" automatiques dans un fichier Word, sa param&eacute;trisation programm&eacute;e,
$R n'est sans doute pas si extraordinaire " ;
01186     echo
" que cela, sauf pour la bioinformatique et pour sa capacit&eacute; &agrave; automatiser et r&eacute;actualiser les rapports et articles." ;
01187     
finp() ;
01188     
01189     
p
("texte") ;
01190     echo
"Pour un(e) professionel(le) de SAS,
$R a une syntaxe &eacute;trange (la r&eacute;ciproque est vraie). " ;
01191     echo
" Heureusement, il existe des passerelles et des ouvrages qui permettent de passer de l'un &agrave; l'autre." ;
01192     echo
" SAS n'est donc plus ind&eacute;tronable pour la gestion automatis&eacute;e \"rapide\" de rapports techniques " ;
01193     echo
" pour de tr&egrave;s gros volumes de donn&eacute;es r&eacute;partis sur la plan&egrave;te..." ;
01194     
finp() ;
01195     
01196     
blockquote() ;
01197     
table
(0,20) ;
01198     
tr() ;
01199     
td
("C") ;
01200      echo
href
("http://www.crcpress.com/product/isbn/9781420070576",img("kleinman.jpg","",100)) ;
01201     
fintd() ;
01202     
td
("C") ;
01203      echo
href
("http://www.springer.com/statistics/computanional+statistics/book/978-1-4614-0684-6",img("muenchen.jpg","",100),"gbleuf nou") ;
01204     
fintd() ;
01205     
td
("C") ;
01206      echo
href
("http://www.amazon.com/Handbook-Statistical-Analyses-Second-Edition/dp/1420079336",img("hsaur.jpg","",100)) ;
01207     
fintd() ;
01208     
td
("C") ;
01209      echo
href
("http://www.amazon.com/Handbook-Statistical-Analyses-using-Edition/dp/1584887842",img("hsaus.jpg","",100)) ;
01210     
fintd() ;
01211     
fintr() ;
01212     
tr() ;
01213     
td
("C") ;
01214      echo
href
("http://www.crcpress.com/product/isbn/9781420070576","Kleinman &amp; Horton","gvert nou") ;
01215     
fintd() ;
01216     
td
("C") ;
01217      echo
href
("http://www.springer.com/statistics/computanional+statistics/book/978-1-4614-0684-6","Muenchen","gvert nou") ;
01218     
fintd() ;
01219     
td
("C") ;
01220      echo
href
("http://www.amazon.com/Handbook-Statistical-Analyses-Second-Edition/dp/1420079336","Everitt &amp; Hothorn","gvert nou") ;
01221     
fintd() ;
01222     
td
("C") ;
01223      echo
href
("http://www.amazon.com/Handbook-Statistical-Analyses-using-Edition/dp/1584887842","Der &amp; Everitt","gvert nou") ;
01224     
fintd() ;
01225     
fintr() ;
01226     
fintable() ;
01227     
finblockquote() ;
01228     
01229     
p
("texte") ;
01230     echo
"Ce qui caract&eacute;rise les grands logiciels payants comme " ;
01231     echo
href
("http://www.sas.com/offices/europe/france/","SAS") ;
01232     echo
" et " ;
01233     echo
href
("http://www.statsoft.fr/index.php","Statistica") ;
01234     echo
", hormis leur catalogue de formation et d'assistance aux utilisateurs \n" ;
01235     echo
"ce sont leurs possibilit&eacute;s de calculs, de graphiques, d'automatisation. \n" ;
01236     echo
"Seuls les logiciels \n" ;
01237     echo
href
("http://www.sas.com/offices/europe/france/","SAS") ;
01238     echo
" et " ;
01239     echo
href
("http://cran.r-project.org/","R") ;
01240     echo
" sont capables de faire du \n" ;
01241     echo
href
("http://fr.wikipedia.org/wiki/Big_data","\"big data\"")." \n" ;
01242     echo
"c'est-&agrave;-dire de traiter de gros volumes de donn&eacute;es, \n" ;
01243     echo
"disons quelques milliers de lignes et quelques centaines de colonnes, \n" ;
01244     echo
"puisqu'ils ne cherchent pas &agrave; afficher syst&eacute;matiquement les donn&eacute;es. \n" ;
01245     echo
" On pourra par exemple consulter la page d'accueil de " ;
01246     echo
href
("http://www.revolutionanalytics.com/","R Analytics").". " ;
01247     
finp() ;
01248     
01249     
p
("texte") ;
01250     echo
"De m&ecirc;me, seuls \n" ;
01251     echo
href
("http://www.sas.com/offices/europe/france/","SAS") ;
01252     echo
" et " ;
01253     echo
href
("http://cran.r-project.org/","R") ;
01254     echo
" sont capables de lire des fichiers disponibles sur le Web, d'avoir des syst&egrave;mes de labels et de formats \n" ;
01255     echo
" automatisables pour fournir des versions multilingues des donn&eacute;es et des r&eacute;sultats " ;
01256     echo
" (voir, l&agrave; encore notre cours " ;
01257     echo
href
("../Eda/edacrs.php?n=5&amp;m=e","EDA 5","gvert nou").")." ;
01258     
finp() ;
01259     
01260     
p
("texte") ;
01261     echo
"Par contre, &agrave; notre connaissance, seul " ;
01262     echo
href
("http://cran.r-project.org/","R") ;
01263     echo
" est r&eacute;actif et fournit de nouvelles m&eacute;thodes statistiques, de nouveaux graphiques, notamment en bioinformatique, " ;
01264     echo
" en &eacute;conomie, et en &eacute;conom&eacute;trie.
$R devient ainsi une " ;
01265     echo
href
("http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?_r=3","lingua franca") ;
01266     echo
" selon le New York Times (2009). " ;
01267     echo
" A titre de comparaison, la \"nouvelle\" version de " ;
01268     echo
href
("http://www.sas.com/offices/europe/france/","SAS") ;
01269     echo
" (pour 2013), nomm&eacute;e " ;
01270     echo
href
("http://www.sas.com/fr_fr/software/sas9.html","SAS 9.4") ;
01271     echo
" comporte de nombreux ajouts informatiques mais pas statistiques. " ;
01272     echo
" Il faut toutefois signaler la tentative r&eacute;cente (2013) nomm&eacute;e " ;
01273     echo
href
("http://www.sas.com/offices/europe/france/software/technologies/bi/visual-analytics.html","SAS Visual Analytics") ;
01274     
#echo " centr&eacute;e sur la ".href("http://www.sas.com/reg/gen/fr/ga-Livre-Blanc-DataViz-EBG-SAS-2013","visualisation")." des donn&eacute;es." ;
01275     
echo
" centr&eacute;e sur la visualisation des donn&eacute;es." ;
01276     
finp() ;
01277     
01278     
p
("texte") ;
01279     echo
" Enfin, les diverses structures de donn&eacute;es comme les "
.em("listes").", les ".em("vecteurs").", les ".em("matrices")." et les ".em("data frames")." fournissent &agrave; " ;
01280     echo
href
("http://cran.r-project.org/","R") ;
01281     echo
" une souplesse et une grande coh&eacute;sion en un seul langage que n'a pas, par exemple " ;
01282     echo
href
("http://www.sas.com/offices/europe/france/","SAS") ;
01283     echo
" qui ne dispose que d'une seule structure de donn&eacute;es, les "
.em("datasets")." et qui utilise cinq (!) langages propri&eacute;taires, " ;
01284     echo
" &agrave; savoir " ;
01285     echo
href
("http://fr.wikipedia.org/wiki/SAS_%28langage%29","SAS L").", " ;
01286     
#echo href("http://www.sas.com/offices/europe/france/services/support/faq/sasbase_macro.html","SAS ML").", " ;
01287     
echo
href("http://stats.idre.ucla.edu/sas/seminars/sas-macros-introduction/","SAS ML").", " ;
01288     echo
href
("http://support.sas.com/documentation/onlinedoc/iml/","SAS IML").", " ;
01289     
#echo href("http://www.sas.com/offices/europe/france/services/support/articles/US2013_Q1_DS2.html","SAS DS2").", " ;
01290     
echo
href("https://support.sas.com/documentation/cdl/en/ds2ref/69739/HTML/default/viewer.htm","SAS DS2").", " ;
01291     echo
href
("http://support.sas.com/documentation/cdl/en/fedsqlref/66010/HTML/default/viewer.htm#titlepage.htm","SAS FedSQL").". " ;
01292     
finp() ;
01293     
01294     
finsolution() ;
01295     
01296     
finblockquote() ;
01297     
01298     
## -------------------------------------------------------------------------------------------
01299     
01300     
$tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Cours de $R en ligne et en fran&ccedil;ais
01301     
01302     ## -------------------------------------------------------------------------------------------
01303     
01304     
blockquote() ;
01305     
01306     
p
("texte") ;
01307     echo
"Y a-t-il beaucoup de cours de
$R en ligne et en fran&ccedil;ais&nbsp;?" ;
01308     echo
" Et de manuels au format PDF&nbsp;?" ;
01309     
finp() ;
01310     
01311     
solution
($numExo,$numSerie) ;
01312     
01313     
p
("texte") ;
01314     echo
"Oui, bien s&ucirc;r, d'autant plus que de plus en plus d'enseignants utilisent
$R." ;
01315     
finp() ;
01316     
01317     
# en voici une s&eacute;lection
01318     
01319     
p
("texte") ;
01320     echo
"S'il ne fallait choisir qu'un seul document, ce serait " ;
01321     echo
href
("http://cran.r-project.org/doc/contrib/Paradis-rdebuts_fr.pdf","celui d'E. Paradis","gbleuf nou").". " ;
01322     echo
" Il est suffisamment complet pour fournir une revue g&eacute;n&eacute;rale de
$R sous l'angle des donn&eacute;es, des calculs, des graphiques... " ;
01323     echo
" en 80 pages." ;
01324     
finp() ;
01325     
01326     
p
("texte") ;
01327     echo
"S'il ne fallait retenir qu'un seul site avec des exercices corrig&eacute;s, ce serait " ;
01328     echo
href
("http://pbil.univ-lyon1.fr/R/","pbil/R","gbleuf nou")."&nbsp;; " ;
01329     echo
" on y trouve notamment un " ;
01330     echo
href
("http://pbil.univ-lyon1.fr/Rweb/Rweb.general.html","Rweb","grouge nou") ;
01331     echo
" qui permet d'ex&eacute;cuter du code
$R dans un navigateur..." ;
01332     
finp() ;
01333     
01334     
p
("texte") ;
01335      echo
"Pour des listes de livres sur
$R, consulter " ;
01336      echo
href
("../Programmation_R/Programmation_avancee/progr.php?n=1&amp;m=s#livres","la solution 14") ;
01337      echo
" de notre cours de "
.s_span("Programmation avanc&eacute;e en R","gbleuf").", " ;
01338      echo
" tout en sachant que la majorit&eacute; des ouvrages sont en anglais, comme on peut le voir &agrave; ";
01339      echo
href
("../Programmation_R/Programmation_avancee/progr.php?n=1&amp;m=e#books","l'&eacute;nonc&eacute; 14") ;
01340      echo
" de ce m&ecirc;me cours. " ;
01341     
finp() ;
01342     
01343     
finsolution() ;
01344     
01345     
finblockquote() ;
01346     
01347     
## -------------------------------------------------------------------------------------------
01348     
01349     
finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans intror_inc.php
01350     
01351     
?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)