Valid XHTML     Valid CSS2    

Listing du fichier progie9.php

 

00001     <?php
00002     #   # (gH)   -_-  progie9.php  ;  TimeStamp (unix) : 01 Septembre 2015 vers 17:37
00003     
00004     error_reporting
(E_ALL E_NOTICE E_STRICT) ;
00005     
00006     include_once("std7.php"
) ;
00007     include_once("progi.php"
) ;
00008     include_once("statuno7.php"
) ;
00009     
00010     $R 
s_span("R","gbleuf") ;
00011     $numSerie 
;
00012     debutPageExercices
($numSerie) ;
00013     
00014     ## -------------------------------------------------------------------------------------------
00015     
00016     p
("texte") ;
00017     echo "" 
;
00018     finp
() ;
00019     debutSection
() ;
00020     
00021     $tableauDesRubriques 
= array() ;
00022     $idr 
;
00023     
00024     $idr
++; $tableauDesRubriques[$idr] = "Profilage et d&eacute;bogagge sous $R;
00025     $idr
++; $tableauDesRubriques[$idr] = "Packages pour tests en $R;
00026     $idr
++; $tableauDesRubriques[$idr] = "Comment d&eacute;finit-on des classes d'objets en $R&nbsp;?" ;
00027     $idr
++; $tableauDesRubriques[$idr] = "Comment &eacute;crit-on un package $R&nbsp;?" ;
00028     $idr
++; $tableauDesRubriques[$idr] = "Est-il facile de reformater du code $R&nbsp;?" ;
00029     $idr
++; $tableauDesRubriques[$idr] = "Comment impl&eacute;menter des ".noir("\"reproducible researches\"")." en $R&nbsp;?" ;
00030     $idr
++; $tableauDesRubriques[$idr] = "Bibliographie sur la programmation $R et tidyverse" ;
00031     
00032     $tdmCRLM 
= new tdm($tableauDesRubriques) ;
00033     $tdmCRLM
->titre() ;
00034     $tdmCRLM
->menu("oui","oui","nou") ;
00035     
00036     afficherSolutions
($numSerie) ;
00037     
00038     finSection
() ;
00039     
00040     debutSection
() ;
00041     $numExo 
;
00042     
00043     ## -------------------------------------------------------------------------------------------
00044     
00045     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Profilage et d&eacute;bogagge sous $R
00046     
00047     ## -------------------------------------------------------------------------------------------
00048     
00049     blockquote
() ;
00050     
00051     blockquote
() ;
00052     
00053     p
("texte") ;
00054     echo "Peut-on facilement d&eacute;bugger du code 
$R&nbsp;?" ;
00055     echo " Et le &laquo;profiler, le benchmarker&raquo;&nbsp;?" 
;
00056     finp
() ;
00057     
00058     p
("texte") ;
00059     echo " Par exemple, est-il plus rapide d'&eacute;crire "
.b("c(min(v),max(v))")." ou ".b("range(v)")."&nbsp;?" ;
00060     finp
() ;
00061     
00062     finblockquote
() ;
00063     
00064     solution
($numExo,$numSerie) ;
00065     
00066     p
("texte") ;
00067     echo "Si vous ne savez pas r&eacute;pondre &agrave; cette question, c'est que vous n'avez pas fait la s&eacute;rie pr&eacute;c&eacute;dente d'exercices&nbsp;!" 
;
00068     echo " Donc voici quelques mots pour vous rappeler ce qui a &eacute;t&eacute; dit &agrave; " 
;
00069     echo href
("progie8.php?solutions=0","la s&eacute;ance 8","grouge")."." ;
00070     finp
() ;
00071     
00072     p
("texte") ;
00073     echo "
$R met &agrave; disposition de nombreux outils et packages, " ;
00074     echo " comme les fonctions " 
;
00075     echo hrrr
("debug").", " ;
00076     echo hrrr
("browser").", " ;
00077     echo hrrr
("recover","utils").", " ;
00078     echo " et " 
;
00079     echo hrrr
("Rprof","utils") ;
00080     echo " ainsi que les packages " 
;
00081     echo hrrp
("pryr") ;
00082     echo " et " 
;
00083     #echo href("http://www.hansenlab.org/rstats/2014/01/30/lineprof/","lineprof") ;
00084     echo 
href("https://github.com/hadley/lineprof","lineprof") ;
00085     echo ". " 
;
00086     finp
() ;
00087     
00088     p
("texte") ;
00089     echo "On pourra consulter " 
;
00090     echo href
("http://www.math.ncu.edu.tw/~chenwc/R_note/reference/debug/Rdebug.pdf","Rdebug.pdf") ;
00091     echo " ("
.href("Rdebug.pdf","copie locale").") sachant que le d&eacute;boggage est int&eacute;gr&eacute; &agrave; $rstudio." ;
00092     finp
() ;
00093     
00094     p
("texte") ;
00095     echo "Vous pouvez aussi vous reporter &agrave; la s&eacute;ance "
.rouge("4")." de nos cours de " ;
00096     echo href
("../Programmation_avancee/","Programmation avanc&eacute;e avec R","gbleuf").". " ;
00097     finp
() ;
00098     
00099     p
("texte") ;
00100     echo " En ce qui concerne "
.b("c(min(v),max(v))")." ou ".b("range(v)").", le r&eacute;sultat est sans appel&nbsp;:" ;
00101     finp
() ;
00102     
00103     pre_fichier
("range.r","cadrebleu") ;
00104     pre_fichier
("range_sor.txt","cadrejaune") ;
00105     
00106     blockquote
() ;
00107     
00108     table
(1,5,"collapse") ; tr() ; td() ;
00109     p
() ;
00110       nbsp
(4) ;
00111       $img 
"range.png" ;
00112       echo href
($img,img($img,"",800)) ;
00113     finp
() ;
00114     fintd
() ; fintr() ; fintable() ;
00115     finblockquote
() ;
00116     
00117     finsolution
() ;
00118     
00119     finblockquote
() ;
00120     
00121     ## -------------------------------------------------------------------------------------------
00122     
00123     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Packages pour tests en R
00124     
00125     ## -------------------------------------------------------------------------------------------
00126     
00127     blockquote
() ;
00128     
00129     blockquote
() ;
00130     
00131     p
("texte") ;
00132     echo " Comment fait-on des tests unitaires en 
$R&nbsp;?" ;
00133     echo " Quels packages sont pr&eacute;vus pour cela&nbsp;? " 
;
00134     echo b
("Application&nbsp;:") ;
00135     echo " &eacute;crire des tests pour la fonction ci-dessous avec les packages "
hrrp("testthat")." et " ;
00136     echo href
("https://cran.r-project.org/web/packages/assertive/index.html","assertive","gvertf").". " ;
00137     finp
() ;
00138     
00139     pre_fichier
("convpouces.r","cadre") ;
00140     
00141     p
("texte") ;
00142     echo " Expliquer pourquoi les fonctions de 
$R ne fournissent pas d'aide si on les appelle sans param&egrave;tre, contrairement " ;
00143     echo " &agrave; nos fonctions&nbsp;:" 
;
00144     finp
() ;
00145     
00146     pre_fichier
("convpouces01.txt","cadrejaune") ;
00147     
00148     finblockquote
() ;
00149     
00150     solution
($numExo,$numSerie) ;
00151     
00152     p
("texte") ;
00153     echo " Plusieurs packages existent, dont " 
;
00154     echo hrrp
("assertr").", " ;
00155     echo hrrp
("ensurer").", " ;
00156     echo hrrp
("checkmate").", " ;
00157     echo hrrp
("tester").", " ;
00158     echo hrrp
("RUnit")."... " ;
00159     finp
() ;
00160     
00161     p
("texte") ;
00162     echo " Parmi tous ces packages, deux semblent au-dessus du lot&nbsp;: " 
;
00163     echo hrrp
("assertive")." et  " ;
00164     echo hrrp
("testthat").". " ;
00165     echo " On pourra consulter l'ouvrage " 
;
00166     echo href
("https://www.crcpress.com/Testing-R-Code/Cotton/p/book/9781498763653","testing R code") ;
00167     echo " pour s'en convaincre. " 
;
00168     finp
() ;
00169     
00170     p
() ;
00171       nbsp
(4) ;
00172       $img 
"testrcode.jpg" ;
00173       echo href
($img,img($img,"",300)) ;
00174     finp
() ;
00175     
00176     p
("texte") ;
00177     echo " La fonction "
.b("convPouces()")." comporte deux param&egrave;tres, ".b("valeur")." et ".b("unit&eacute;") ;
00178     echo" qui doivent &ecirc;tre respectivement un entier non n&eacute;gatif et une chaine de caract&egrave;res. Voici les tests associ&eacute;s&nbsp;:" 
;
00179     finp
() ;
00180     
00181     pre_fichier
("convpouces01.r","cadre") ;
00182     
00183     p
("texte") ;
00184     echo " Cette fonction "
.b("convPouces()")." est incorrecte car les variables ".b("resultatConv")." et ".b("autreu") ;
00185     echo"  ne sont pas initialis&eacute;es mais parfois quand m&ecirc;me renvoy&eacute;es. " 
;
00186     echo"  Voici les tests associ&eacute;s, nous vous laissons  modifier la fonction en cons&eacute;quence..." 
;
00187     finp
() ;
00188     
00189     pre_fichier
("convpouces03.r","cadrebleu",0,1) ;
00190     pre_fichier
("convpouces02.r","cadrejaune",0,1) ;
00191     #pre_fichier("convpouces02._sor.txt","cadrejaune") ;
00192     
00193     blockquote
() ;
00194     div
() ;
00195     nbsp
(10) ;
00196     table
(1,5,"collapse") ; tr() ; td() ;
00197     p
() ;
00198       nbsp
(4) ;
00199       $img 
"testConv.png" ;
00200       echo href
($img,img($img,"",800)) ;
00201     finp
() ;
00202     fintd
() ; fintr() ; fintable() ;
00203     findiv
() ;
00204     finblockquote
() ;
00205     
00206     p
("texte") ;
00207     echo " Les fonctions de 
$R ne fournissent pas d'aide si on les appelle sans param&egrave;tre, contrairement " ;
00208     echo " &agrave; nos fonctions parce qu'elles sont toutes dans des packages. Donc leur aide s'obtient via "
.b('help("laFonction")').", ";
00209     echo " ce qui n'est pas le cas de nos fonctions." 
;
00210     finp
() ;
00211     
00212     finsolution
() ;
00213     
00214     finblockquote
() ;
00215     
00216     ## -------------------------------------------------------------------------------------------
00217     
00218     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Comment d&eacute;finit-on des classes d'objets en $R
00219     
00220     ## -------------------------------------------------------------------------------------------
00221     
00222     blockquote
() ;
00223     
00224     blockquote
() ;
00225     
00226     p
("texte") ;
00227     echo "Dans les langages de programmation classiques, on d&eacute;finit des classes d'objets. " 
;
00228     echo " Peut-on le faire en 
$R&nbsp;?" ;
00229     finp
() ;
00230     
00231     finblockquote
() ;
00232     
00233     solution
($numExo,$numSerie) ;
00234     
00235     p
("texte") ;
00236     echo " Oui, bien s&ucirc;r, il y a m&ecirc;me deux langages &agrave; objets int&eacute;gr&eacute;s &agrave; 
$R, historiquement&nbsp;:" ;
00237     echo " celui des classes S3 (ancien) et celui des classes S4 (nouveau)." 
;
00238     echo " Depuis 2018 on a aussi des objets R6. Voir l'excellent document " 
;
00239     echo href
("https://adv-r.hadley.nz/oo.html","OO.html")." &agrave; ce sujet." ;
00240     finp
() ;
00241     
00242     http
://cran.r-project.org/doc/contrib/Genolini-S4tutorialV0-5en.pdf
00243     p
("texte") ;
00244     echo "Un document de r&eacute;f&eacute;rence, disponible au cran est " 
;
00245     echo href
("http://cran.r-project.org/doc/contrib/Genolini-S4tutorialV0-5en.pdf","introduction to S4") ;
00246     echo " ("
.href("genoliniS4.pdf","copie locale").") qui est en anglais. Une version fran&ccedil;aise " ;
00247     echo " existe aussi nomm&eacute;e " 
;
00248     echo href
("http://cran.r-project.org/doc/contrib/Genolini-PetitManuelDeS4.pdf","petit manuel de S4") ;
00249     echo " ("
.href("genoliniS4fr.pdf","copie locale").")." ;
00250     finp
() ;
00251     
00252     p
("texte") ;
00253     echo "L&agrave; encore, vous pouvez aussi vous reporter &agrave; la s&eacute;ance "
.rouge("4")." de nos cours de " ;
00254     echo href
("../Programmation_avancee/","Programmation avanc&eacute;e avec R","gbleuf")." " ;
00255     echo" pour voir un exemple concret de cr&eacute;ation d'une classe d'objets." 
;
00256     finp
() ;
00257     
00258     p
("texte") ;
00259     echo " Vous trouverez "
.href("demoObj1.txt","ici")." la d&eacute;finition des classes " ;
00260     echo " et "
.href("demoObj2.r","l&agrave;")." leur utilisation, reproduit ci-dessous." ;
00261     finp
() ;
00262     
00263     pre_fichier
("demoObj2.r","cadrebleu") ;
00264     pre_fichier
("demoObj2.sor","cadrejaune") ;
00265     
00266     finsolution
() ;
00267     
00268     finblockquote
() ;
00269     
00270     ## -------------------------------------------------------------------------------------------
00271     
00272     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Comment &eacute;crit-on un package $R&nbsp;?" ;
00273     
00274     ## -------------------------------------------------------------------------------------------
00275     
00276     blockquote
() ;
00277     
00278     blockquote
() ;
00279     
00280     p
("texte") ;
00281     echo "Que contient exactement un package 
$R&nbsp;?" ;
00282     echo " Est-ce facile d'en &eacute;crire un, d'en d&eacute;poser un au CRAN&nbsp;?" 
;
00283     finp
() ;
00284     
00285     finblockquote
() ;
00286     
00287     solution
($numExo,$numSerie) ;
00288     
00289     p
("texte") ;
00290     echo "Un package comporte des fonctions, des donn&eacute;es, de l'aide et des exemples. " 
;
00291     echo " Sur le principe, ce n'est pas difficile d'&eacute;crire un package. Mais c'est un peu fastidieux la premi&egrave;re fois. " 
;
00292     finp
() ;
00293     
00294     p
("texte") ;
00295     echo "Pour &eacute;viter de vous reporter une nouvelle fois &agrave; la s&eacute;ance "
.rouge("4")." de nos cours de " ;
00296     echo href
("../Programmation_avancee/","Programmation avanc&eacute;e avec R","gbleuf")." qui montre l'&eacute;criture d'un tout petit package, " ;
00297     echo " nomm&eacute; "
.b("conv") ;
00298     echo " vous pouvez consulter la " 
;
00299     echo href
("http://christophe.genolini.free.fr/webTutorial/construireUnPackage.php","page de C. Genolini") ;
00300     echo" sur le sujet." 
;
00301     finp
() ;
00302     
00303     p
("texte") ;
00304     echo " Comme indiqu&eacute; &agrave; la question pr&eacute;c&eacute;dente, une fois le package charg&eacute;, les fonctions &eacute;crites dans le package ont le m&ecirc;me statut " 
;
00305     echo " que les autres fonctions de 
$R, elles ont une compl&eacute;tion automatique, leur aide s'affiche dans le panneau d'aide etc." ;
00306     finp
() ;
00307     
00308     blockquote
() ;
00309     div
() ;
00310     nbsp
(10) ;
00311     table
(1,5,"collapse") ; tr() ; td() ;
00312     p
() ;
00313       nbsp
(4) ;
00314       $img 
"convAide.png" ;
00315       echo href
($img,img($img,"",800)) ;
00316     finp
() ;
00317     fintd
() ; fintr() ; fintable() ;
00318     findiv
() ;
00319     finblockquote
() ;
00320     
00321     p
("texte") ;
00322     echo " On trouvera ci-dessous, issus des ressources de "
.href("https://www.rstudio.com/resources/cheatsheets/","Rstudio") ;
00323     echo " le rappel de l'organisation d'un package, les commandes de construction et de test etc;" 
;
00324     finp
() ;
00325     
00326     blockquote
() ;
00327     div
() ;
00328     nbsp
(10) ;
00329     table
(1,5,"collapse") ; tr() ; td() ;
00330     p
() ;
00331       nbsp
(4) ;
00332       $img 
"packages.png" ;
00333       echo href
($img,img($img,"",800)) ;
00334     finp
() ;
00335     fintd
() ; fintr() ; fintable() ;
00336     findiv
() ;
00337     finblockquote
() ;
00338     
00339     p
("texte") ;
00340     echo " A titre d'exemple, sous Linux, cr&eacute;ez un r&eacute;pertoire nomm&eacute; "
.b("conv")." et d&eacute;compressez l'archive ".href("conv.zip")." dans ce r&eacute;pertoire. " ;
00341     echo " Dans le r&eacute;pertoire parent de "
.b("conv").", ex&eacute;cutez la commande ";
00342     echo ghRouge
("R&nbsp;CMD&nbsp;check&nbsp;conv") ;
00343     echo " puis la commande "
;
00344     echo ghRouge
("R&nbsp;CMD&nbsp;build&nbsp;conv").". " ;
00345     echo " Vous devriez disposer alors du fichier "
.href("conv_1.0.tar.gz")." qu'on peut installer via Rstudio." ;
00346     finp
() ;
00347     
00348     p
("texte") ;
00349     echo " Le r&eacute;sultat de la commande "
.b("check")." est ".href("rcmdcheck.txt") ;
00350     echo " et celui de la commande "
.b("buil")." est ".href("rcmdbuild.txt").". " ;
00351     finp
() ;
00352     
00353     p
("texte") ;
00354     echo " Un autre exemple complet, avec du code R et C++ pour construire un package est " 
;
00355     echo href
("https://bitbucket.org/richierocks/hypotenuser/src/master/","ici") ;
00356     echo " qui aboutit au fichier "
.href("hypotenuser.tar.gz")." que l'on  peut installer dans Rstudio." ;
00357     finp
() ;
00358     
00359     finsolution
() ;
00360     
00361     finblockquote
() ;
00362     
00363     ## -------------------------------------------------------------------------------------------
00364     
00365     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Est-il facile de reformater du code $R&nbsp;?" ;
00366     
00367     ## -------------------------------------------------------------------------------------------
00368     
00369     blockquote
() ;
00370     
00371     blockquote
() ;
00372     
00373     p
("texte") ;
00374     echo "Certains &eacute;crivent du code 
$R &laquo;n'importe comment&raquo;. " ;
00375     echo " Y a-t-il des r&egrave;gles d'&eacute;criture de code 
$R, des outils pour reformater le code $R&nbsp;?" ;
00376     finp
() ;
00377     
00378     finblockquote
() ;
00379     
00380     solution
($numExo,$numSerie) ;
00381     
00382     p
("texte") ;
00383     echo "Un outil tr&egrave;s adapt&eacute; est la fonction "
.b("tidy_source()")." du package " ;
00384     echo href
("http://finzi.psych.upenn.edu/R/library/formatR/doc/formatR.html","formatR").". " ;
00385     finp
() ;
00386     
00387     p
("texte") ;
00388     echo "Le plus important est de garder un m&ecirc;me style d'&eacute;crire tout au long du code afin de faciliter la relecture." 
;
00389     finp
() ;
00390     
00391     finsolution
() ;
00392     
00393     finblockquote
() ;
00394     
00395     ## -------------------------------------------------------------------------------------------
00396     
00397     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Comment impl&eacute;menter des ".noir("reproducible researches")." en $R&nbsp;?" ;
00398     
00399     ## -------------------------------------------------------------------------------------------
00400     
00401     blockquote
() ;
00402     
00403     blockquote
() ;
00404     
00405     p
("texte") ;
00406     echo "
$R et $rstudio ont un gros probl&egrave;me avec la notion d'environnement&nbsp;: " ;
00407     echo " certaines variables ont &eacute;t&eacute; cr&eacute;es \"&agrave; la main\", en interactif, et 
$R les voit dans les fonctions... " ;
00408     echo " Comment produire et documenter du code \"propre\" et pouvoir reproduire des comportements fonctionnels en 
$R&nbsp;?" ;
00409     echo " Quels outils faut-il utiliser pour faire du "
.b("DRY")." (qu'est-ce&nbsp;?) en $R&nbsp;?" ;
00410     finp
() ;
00411     
00412     finblockquote
() ;
00413     
00414     solution
($numExo,$numSerie) ;
00415     
00416     p
("texte") ;
00417     echo "C'est tr&egrave;s simple, il suffit d'utiliser " 
;
00418     echo href
("http://yihui.name/knitr/","knitr")." qui s'interface tr&egrave;s bien avec $rstudio." ;
00419     echo " Le code 
$R y est ex&eacute;cut&eacute; &agrave; partir d'un environnement vierge &agrave; chaque fois, ce qui peut garantir " ;
00420     echo " la reproductibilit&eacute;. " 
;
00421     finp
() ;
00422     
00423     p
("texte") ;
00424     echo href
("http://yihui.name/knitr/","knitr")." est plus g&eacute;n&eacute;ral et finalement plus simple &agrave; utiliser " ;
00425     echo " que "
.href("https://www.statistik.lmu.de/~leisch/Sweave/","Sweave").". " ;
00426     echo " On consultera avec int&eacute;r&ecirc;t les ouvrages suivants&nbsp;:" 
;
00427     finp
() ;
00428     
00429     table
(0,20) ;
00430     tr
() ;
00431     
00432     td
() ;
00433     p
() ;
00434     nbsp
(10) ;
00435     $img 
"reproducible.jpg" ;
00436     echo href
("http://www.amazon.com/Reproducible-Research-Studio-Chapman-Series/dp/1466572841",img($img,"",125)) ;
00437     finp
() ;
00438     fintd
() ;
00439     
00440     td
() ;
00441     p
() ;
00442     nbsp
(10) ;
00443     $img 
"knitr.jpg" ;
00444     echo href
("http://www.amazon.com/Dynamic-Documents-knitr-Chapman-Series/dp/1482203537",img($img,"",125)) ;
00445     finp
() ;
00446     fintd
() ;
00447     
00448     fintr
() ;
00449     fintable
() ;
00450     
00451     p
("texte") ;
00452     echo " A titre de v&eacute;rification, on pourra reproduire int&eacute;gralement le livre de C. Gandrud en suivant " 
;
00453     echo href
("https://github.com/christophergandrud/Rep-Res-Book","ce lien")."." ;
00454     finp
() ;
00455     
00456     # http://christophergandrud.github.io/RepResR-RStudio/errata.htm
00457     
00458     p
("texte") ;
00459     echo " Pour "
.href("https://en.wikipedia.org/wiki/Don%27t_repeat_yourself","DRY")." on peut consulter " ;
00460     echo href
("https://cpb-ap-se2.wpmucdn.com/blogs.auckland.ac.nz/dist/1/411/files/2018/12/1_peterBaker_AASC18_talk-1aiphvo.pdf","Baker") ;
00461     echo " ("
.href("peterBaker.pdf","copie locale").")." ;
00462     finp
() ;
00463     
00464     finsolution
() ;
00465     
00466     finblockquote
() ;
00467     
00468     ## -------------------------------------------------------------------------------------------
00469     
00470     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Bibliographie sur la programmation $R
00471     
00472     ## -------------------------------------------------------------------------------------------
00473     
00474     blockquote
() ;
00475     
00476     blockquote
() ;
00477     
00478     p
("texte") ;
00479     echo "Il existe beaucoup de livres sur 
$R vu sous l'angle des statistiques " ;
00480     echo " comme on peut le voir " 
;
00481     echo href
("../Programmation_avancee/progr.php?n=1&amp;m=e#livres","ici") ;
00482     echo " ici " 
;
00483     echo href
("../Programmation_avancee/progr.php?n=1&amp;m=s#livres","l&agrave;").". " ;
00484     echo " Mais pour la programmation, quels " 
;
00485     echo " ouvrages trouve-t-on&nbsp;?" 
;
00486     finp
() ;
00487     
00488     p
("texte") ;
00489     echo " Quels livres de H. Wickham (qui est-ce&nbsp;?) sont en ligne&nbsp;?" 
;
00490     finp
() ;
00491     
00492     p
("texte") ;
00493     echo " Expliquer ce que font les instructions suivantes &eacute;crites en 
$R pour ".b("tidyverse")."." ;
00494     finp
() ;
00495     
00496     pre_fichier
("tidyverse1.r","cadrebleu") ;
00497     
00498     p
("texte") ;
00499     echo " R&eacute;&eacute;crire en 
$R/".b("tidyverse")." le code suivant, solution d'un de nos exercices." ;
00500     finp
() ;
00501     
00502     pre_fichier
("tidyverse2.r","cadrebleu") ;
00503     
00504     p
("texte") ;
00505     echo " Comment &eacute;crire sa th&egrave;se avec Rstudio&nbsp;?"
;
00506     finp
() ;
00507     
00508     finblockquote
() ;
00509     
00510     solution
($numExo,$numSerie) ;
00511     
00512     p
("texte") ;
00513     echo " S'il y avait peu d'ouvrages en 2015, et aucun un peu long en fran&ccedil;ais,  " 
;
00514     echo " sauf l'ouvrage de "
.href("http://cran.r-project.org/doc/contrib/Goulet_introduction_programmation_R.pdf","V. Goulet") ;
00515     echo " ("
.href("goulet.pdf","copie locale")."), les choses ont beaucoup &eacute;volu&eacute;, notamment en 2017." ;
00516     echo " Nous vous conseillons toujours les trois livres qui suivent, du plus g&eacute;n&eacute;ral (Gentleman) au plus sp&eacute;cialis&eacute; (Wickman)&nbsp;: " 
;
00517     finp
() ;
00518     
00519     table
(0,20,"collapse") ;
00520       tr
() ;
00521         td
("C") ; echo href("http://www.crcpress.com/product/isbn/9781420063677",img("rprogbio.jpg","",100)) ; fintd() ;
00522         td
("C") ; echo href("http://nostarch.com/artofr.htm",img("artofr.png","",120)) ;  fintd() ;
00523         td
("C") ; echo href("http://http://www.amazon.com/dp/1466586966/ref=cm_sw_su_dp?tag=devtools-20",img("advancedr.jpg","",100)) ; fintd() ;
00524       fintr
() ;
00525       tr
() ;
00526         td
("C") ; echo href("http://www.crcpress.com/product/isbn/9781420063677","R.&nbsp;Gentleman") ; fintd() ;
00527         td
("C") ; echo href("http://nostarch.com/artofr.htm","N.&nbsp;Matloff") ;  fintd() ;
00528         td
("C") ; echo href("http://http://www.amazon.com/dp/1466586966/ref=cm_sw_su_dp?tag=devtools-20","H.&nbsp;Wickham") ; fintd() ;
00529       fintr
() ;
00530     fintable
() ;
00531     
00532     p
("texte") ;
00533     echo " Aujourd'hui, en 2019,  une recherche sur le web avec les termes " 
;
00534     echo b
("r programming").", ".ghBleu("r programming objects")." ou encore ".ghVert("r programming functional") ;
00535     echo " fournir de nombreuses r&eacute;ponses, comme ci-dessous&nbsp;:" 
;
00536     finp
() ;
00537     
00538     p
() ;
00539       echo b
("R programming") ;
00540     finp
() ;
00541     p
() ;
00542       nbsp
(4) ;
00543       $img 
"programming.png" ;
00544       echo href
($img,img($img,"",800)) ;
00545     finp
() ;
00546     
00547     p
() ;
00548       echo b
("R programming objects") ;
00549     finp
() ;
00550     p
() ;
00551       nbsp
(4) ;
00552       $img 
"objects.png" ;
00553       echo href
($img,img($img,"",800)) ;
00554     finp
() ;
00555     
00556     p
() ;
00557       echo b
("R programming functional") ;
00558     finp
() ;
00559     p
() ;
00560       nbsp
(4) ;
00561       $img 
"functional.png" ;
00562       echo href
($img,img($img,"",800)) ;
00563     finp
() ;
00564     
00565     p
("texte") ;
00566     echo href
("https://fr.wikipedia.org/wiki/Hadley_Wickham","Hadley WICKHAM") ;
00567     echo" est l'un des auteurs de "
.b("tidyverse").". Voici ses livres en ligne&nbsp;:" ;
00568     finp
() ;
00569     
00570     blockquote
() ;
00571     table
(0,30) ;
00572     tr
() ;
00573       td
("C") ;
00574         echo href
("http://r-pkgs.had.co.nz/",img("hw_rpackages.png","",250)) ;
00575       fintd
() ;
00576       td
("C") ;
00577         echo href
("https://r4ds.had.co.nz/",img("hw_r4ds.png","",220)) ;
00578       fintd
() ;
00579       td
("C") ;
00580         echo href
("http://adv-r.had.co.nz/",img("hw_advancedR2.png","",200)) ;
00581       fintd
() ;
00582     fintr
() ;
00583     tr
() ;
00584       td
("C") ;
00585         echo href
("http://r-pkgs.had.co.nz/","R packages") ;
00586       fintd
() ;
00587       td
("C") ;
00588         echo href
("https://r4ds.had.co.nz/","R for datascience") ;
00589       fintd
() ;
00590       td
("C") ;
00591         echo href
("http://adv-r.had.co.nz/","Advanced R") ;
00592       fintd
() ;
00593     fintr
() ;
00594     fintable
() ;
00595     finblockquote
() ;
00596     
00597     
00598     p
("texte") ;
00599     echo " Les nouveaux op&eacute;rateurs ont pour but de rendre plus lisibles les op&eacute;rations effectu&eacute;es." 
;
00600     finp
() ;
00601     
00602     pre_fichier
("tidyverse1sol.r","cadrejaune") ;
00603     
00604     p
("texte") ;
00605     echo " Cela change beaucoup la syntaxe des calculs&nbsp;:" 
;
00606     finp
() ;
00607     
00608     pre_fichier
("tidyverse2.r","cadrebleu") ;
00609     pre_fichier
("tidyverse2sol.r","cadrejaune") ;
00610     
00611     
00612     p
("texte") ;
00613     echo " Pour &eacute;crire sa th&egrave;se avec Rstudio, le mieux est d'utiliser le package "
.hrrp("bookdown")."&nbsp;:" ; ;
00614     finp
() ;
00615     
00616     table
(0,20) ;
00617     tr
() ;
00618     
00619     td
() ;
00620     p
() ;
00621     nbsp
(10) ;
00622     $img 
"bookdown.png" ;
00623     echo href
("https://bookdown.org/",img($img,"",125)) ;
00624     finp
() ;
00625     fintd
() ;
00626     
00627     td
() ;
00628     p
() ;
00629     nbsp
(10) ;
00630     $img 
"bookdown.jpg" ;
00631     echo href
("https://bookdown.org/yihui/bookdown/",img($img,"",125)) ;
00632     finp
() ;
00633     fintd
() ;
00634     
00635     fintr
() ;
00636     fintable
() ;
00637     
00638     finsolution
() ;
00639     
00640     finblockquote
() ;
00641     
00642     ## -------------------------------------------------------------------------------------------
00643     
00644     finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans progi.php
00645     
00646     ?>

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)