Valid XHTML     Valid CSS2    

Listing du fichier index.php

 

00001     <?php
00002     #   # (gH)   -_-  index.php  ;  TimeStamp (unix) : 07 Juin 2018 vers 11:48
00003     error_reporting
(E_ALL E_NOTICE E_STRICT ) ;
00004     include("../../std7.php"
) ;
00005     include("../../statuno7.php"
) ;
00006     
00007     ###########################################################################################
00008     
00009     # redirection éventuelle de www.info vers forge.info (à cause de montersource.php)
00010     
00011     $host 
getenv("HTTP_HOST") ; #echo " HOST : $host " ;
00012     
00013     if (
$host=="www.info.univ-angers.fr") {
00014     
00015        $titre  
"gh Warm-up session in R" ;
00016        $temps  
;
00017        $newUrl 
"http://forge.info.univ-angers.fr/~gh/wstat/R-warmup/" ;
00018     
00019        debutPageRedir
($titre,$temps,$newUrl) ;
00020     
00021     } ; # fin si
00022     
00023     ###########################################################################################
00024     
00025     $R      
s_span("R","grouge") ;
00026     $Python 
s_span("Python","gvertf") ;
00027     debutPage
("R warm up session","strict") ;
00028     debutSection
() ;
00029     
00030     h1
("$R warm up session for the Bioinformatics Summer School","strict") ;
00031     
00032     p
() ;
00033     nbsp
(7) ;
00034     echo s_span
("&nbsp;gilles.hunault@univ-angers.fr","gvert plusgros") ;
00035     finp
() ;
00036     
00037     div
("cadre") ;
00038     blockquote
() ;
00039     
00040     p
() ;
00041     echo " Remember that with " 
;
00042     echo href
("https://www.rdocumentation.org/trends","more than 2 millions of functions") ;
00043     echo " distributed as " 
;
00044     echo href
("https://cran.r-project.org/web/packages/index.html","packages") ;
00045     echo " grouped in " 
;
00046     echo href
("https://cran.r-project.org/web/views","task views") ;
00047     echo 
$R is a fantastic tool... but not the only one." ;
00048     finp
() ;
00049     
00050     p
() ;
00051     echo "There is even a site dedicated to 
$R and bioinformatics called " ;
00052     echo href
("https://www.bioconductor.org","Bioconductor")."." ;
00053     finp
() ;
00054     
00055     p
() ;
00056     echo "Official documentation (many languages) is " 
;
00057     echo href
("https://cran.r-project.org/other-docs.html",b("here"),"gnoir")."." ;
00058     finp
() ;
00059     
00060     finblockquote
() ;
00061     findiv
() ;
00062     
00063     ######################################################################################################
00064     
00065     blockquote
() ;
00066     table
(0,30,"collapse") ;
00067     tr
() ;
00068     td
("C") ;
00069     p
() ;
00070     $img 
"../Programmation_R/Programmation_introduction/rlogo.png"   ; echo img($img,"",100) ;
00071     finp
() ;
00072     pvide
() ;
00073     p
() ;
00074     $img 
"../Programmation_R/Programmation_introduction/rstudio.jpg" ; echo img($img,"",80) ;
00075     finp
() ;
00076     pvide
() ;
00077     p
() ;
00078     $img 
"../R15/bioconductor.png" ; echo img($img,"",100) ;
00079     finp
() ;
00080     fintd
() ;
00081     td
() ;
00082     h2
(b("Very very short lectures"),"bleu") ;
00083     
00084     blockquote
() ;
00085     
00086     h3
("About $R and bioinformatics") ;
00087     
00088     ul
() ;
00089       debutli
() ; p() ;
00090          echo href
("../R15/indexen.php","in English") ;
00091       finp
() ; finli() ;
00092       debutli
() ; p() ;
00093          echo href
("../R15/index.php","in French") ;
00094       finp
() ; finli() ;
00095     finul
() ;
00096     
00097     h3
("About $R and [bio]statistics") ;
00098     
00099     ul
() ;
00100       debutli
() ; p() ;
00101          echo href
("../R15/r5en.php","in English") ;
00102       finp
() ; finli() ;
00103       debutli
() ; p() ;
00104          echo href
("../R15/r5.php","in French") ;
00105       finp
() ; finli() ;
00106     finul
() ;
00107     
00108     finblockquote
() ;
00109     fintd
() ;
00110     fintr
() ;
00111     fintable
() ;
00112     finblockquote
() ;
00113     
00114     ######################################################################################################
00115     
00116     pvide
() ;
00117     p
() ;
00118     echo " You can follow "
.href("http://publicifsv.sund.ku.dk/~jufo/courses/exp2019/R-notes-nup.pdf","this link") ;
00119     echo " to have a short reference card for R and Rstudio.  " 
;
00120     echo " A local copy is "
.href("R-notes.pdf","here")."." ;
00121     finp
() ;
00122     
00123     
00124     pvide
() ;
00125     
00126     h2
("Choose the section that suits you best:") ;
00127     
00128     $tableauDesRubriques 
= array() ;
00129     $idr 
;
00130     $idr
++; $tableauDesRubriques[$idr] = "I don't know $R;
00131     $idr
++; $tableauDesRubriques[$idr] = "I think I know $R for statistics and bioinformatics" ;
00132     $idr
++; $tableauDesRubriques[$idr] = "I think I know how to program in $R;
00133     $idr
++; $tableauDesRubriques[$idr] = "I know $Python better than $R;
00134     $tdmCRLM 
= new tdm($tableauDesRubriques) ;
00135     $tdmCRLM
->menu("oui","oui","nou") ;
00136     pvide
() ;
00137     
00138     ######################################################################################################
00139     
00140     ## -------------------------------------------------------------------------------------------
00141     
00142     $tdmCRLM
->afficheRubrique("oui") ; #
00143     
00144     ## -------------------------------------------------------------------------------------------
00145     
00146     blockquote
() ;
00147     
00148     p
("texte") ;
00149     echo " OK, you need a gentle introduction to 
$R. " ;
00150     echo " So "
.b("practice")." is the best solution. Read the " ;
00151     echo " following document " 
;
00152     echo href
("r-intro.pdf","r-intro") ;
00153     echo " based on Frédéric PROIA's warm up document " 
;
00154     echo " and type the code in "
.href("https://www.rstudio.com","Rstudio","gvert")." to see what $R answers. " ;
00155     finp
() ;
00156     
00157     p
("texte") ;
00158     echo " You can load the file "
.href("warmup.r")." with all its $R code  if you don't want to type the code -- " ;
00159     echo " but usually to write things helps to remember them. " 
;
00160     echo " You can also cut and paste the following lines, each instruction at a time:" 
;
00161     finp
() ;
00162     
00163     p
() ;
00164     textarea_fichier
("intro","cadrebleu",20,120,"intro","warmup.r") ;
00165     finp
() ;
00166     
00167     $numExo 
;
00168     
00169     p
("texte") ;
00170     echo " Then try to solve these exercises:" 
;
00171     finp
() ;
00172     
00173     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00174     blockquote
() ;
00175     p
("texte") ;
00176     echo " Use the "
.b("iris")." dataset. Compute the mean of the fourth column. " ;
00177     echo " Why is the "
.b("summary")." function a ".em("&laquo;good but limited function&raquo;")."?" ;
00178     finp
() ;
00179     p
("texte") ;
00180     echo " Compute now the median of the fourth column. " 
;
00181     echo " Does 
$R help you to decide how to choose between the mean and the median (or another computation) as the best descriptor of the values?" ;
00182     echo " Does 
$R show the unit of the petals' width?" ;
00183     finp
() ;
00184     finblockquote
() ;
00185     
00186     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00187     blockquote
() ;
00188     p
("texte") ;
00189     echo " Read the "
.href("http://forge.info.univ-angers.fr/~gh/Datasets/elf.dar","elf.dar")." data file " ;
00190     echo " using the explanations given at the end of the page "
.href("http://forge.info.univ-angers.fr/~gh/Datasets/elf.htm","elf.htm").". " ;
00191     echo " Convert the "
.b("SEXE")." column of the dataframe into a factor: 0=male and 1=female. " ;
00192     echo " Use the "
.b("table")." and ".b("prop.table")." functions to compute absolute and relative counts. How to sort them in decreasing order?" ;
00193     finp
() ;
00194     finblockquote
() ;
00195     
00196     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00197     blockquote
() ;
00198     p
("texte") ;
00199     echo "Compute the "
.b("GC content")." of gene ".b("X94991.1").". Use all nice bioinformatics functions of $R to do it with a minimum of instructions." ;
00200     finp
() ;
00201     p
("texte") ;
00202     echo em
(" Hint:")." use the $R code from ".href("../R15/indexen.php","R15")." and install the ".b("ape")." package. " ;
00203     finp
() ;
00204     finblockquote
() ;
00205     
00206     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00207     blockquote
() ;
00208     p
("texte") ;
00209     echo " Use again the "
.b("elf")." data. " ;
00210     echo " Compare the age of women and men with the help of the "
.b("t.test")." function. Comment the output. " ;
00211     finp
() ;
00212     p
("texte") ;
00213     echo " Does 
$R check that the assumptions of the test are fullfilled?" ;
00214     finp
() ;
00215     finblockquote
() ;
00216     
00217     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00218     blockquote
() ;
00219     p
("texte") ;
00220     echo "What is the purpose of the "
.b("msaR")." and ".b("AlignStat")." packages?" ;
00221     finp
() ;
00222     finblockquote
() ;
00223     
00224     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00225     blockquote
() ;
00226     p
("texte") ;
00227     echo "Explain in which cases it is better to use "
.b("beanplots")." than boxplots. Use $R to show it." ;
00228     echo " You have to install the "
.b("beanplot")." package. " ;
00229     finp
() ;
00230     finblockquote
() ;
00231     
00232     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00233     blockquote
() ;
00234     p
("texte") ;
00235     echo " Install and then load the "
.b("rms")." package. Why does the installation take so long?" ;
00236     echo " Which datasets are included?" 
;
00237     finp
() ;
00238     p
("texte") ;
00239     echo " This package is associated to a Springer book. What is its name?" 
;
00240     finp
() ;
00241     p
("texte") ;
00242     finp
() ;
00243     finblockquote
() ;
00244     
00245     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00246     blockquote
() ;
00247     p
("texte") ;
00248     echo " Install and then load the "
.b("faraway")." package. " ;
00249     echo " Which datasets are included?" 
;
00250     finp
() ;
00251     p
("texte") ;
00252     echo " This package is associated to a CRC book. What is its name?" 
;
00253     finp
() ;
00254     p
("texte") ;
00255     echo " How do you remove all lines with NA values with 
$R in the ".b("diabetes")." dataset of this package?" ;
00256     echo " Is it a good idea to do so?" 
;
00257     finp
() ;
00258     finblockquote
() ;
00259     
00260     
00261     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00262     blockquote
() ;
00263     p
("texte") ;
00264     echo " Load the "
.b("survival")." package. " ;
00265     echo " Check that you don't need to install it. Why?" 
;
00266     echo " Is there also a book associated to this package?" 
;
00267     finp
() ;
00268     p
("texte") ;
00269     echo " Try to find the class and the dimensions of two of its dataset, named "
.b("kidney") ;
00270     echo " and "
.b("leukemia").". " ;
00271     finp
() ;
00272     p
("texte") ;
00273     echo "How can you find the class and the dimensions of all the datasets of this package?" 
;
00274     finp
() ;
00275     finblockquote
() ;
00276     
00277     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00278     blockquote
() ;
00279     p
("texte") ;
00280     echo "Why should you avoid "
.b("for loops")." as much as possible  in $R if you are dealing with columns or lines of data frames?" ;
00281     finp
() ;
00282     finblockquote
() ;
00283     
00284     finblockquote
() ; # de section
00285     
00286     ## -------------------------------------------------------------------------------------------
00287     
00288     $tdmCRLM
->afficheRubrique("oui") ; #
00289     
00290     ## -------------------------------------------------------------------------------------------
00291     
00292     blockquote
() ;
00293     
00294     p
("texte") ;
00295     echo " There are some good and some bad practices in 
$R to compute statistics and produce bioinformatics results. " ;
00296     echo " Check how you do things with these exercises." 
;
00297     finp
() ;
00298     p
("texte") ;
00299     echo "No programming is needed here." 
;
00300     echo " Use "
.href("https://www.rstudio.com","Rstudio","gvert")." to edit and run your code. " ;
00301     finp
() ;
00302     
00303     $numExo 
;
00304     
00305     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00306     blockquote
() ;
00307     p
("texte") ;
00308     echo " Use the "
.b("iris")." dataset. Compute the means of the four first columns with a single instruction. " ;
00309     finp
() ;
00310     p
("texte") ;
00311     echo " Can you apply the "
.b("summary")." function on the first column for each species with a single instruction?" ;
00312     finp
() ;
00313     finblockquote
() ;
00314     
00315     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00316     blockquote
() ;
00317     p
("texte") ;
00318     echo " Use the "
.b("cars")." dataset. " ;
00319     echo " Write a  single instruction to have the "
.b("row names")." showing ".b("Car001&nbsp;Car002...") ;
00320     echo " No loop accepted." 
;
00321     finp
() ;
00322     finblockquote
() ;
00323     
00324     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00325     blockquote
() ;
00326     p
("texte") ;
00327     echo " What is the shortest way to see the columns' name and their index, such as in this example:" 
;
00328     finp
() ;
00329     pre_fichier
("iris.sor","cadre") ;
00330     p
("texte") ;
00331     echo " You may use the "
.b("iris")." dataset. Remember: neither programming nor for loop here." ;
00332     finp
() ;
00333     finblockquote
() ;
00334     
00335     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00336     blockquote
() ;
00337     p
("texte") ;
00338     echo " Read the "
.b("diabetes")." dataset at the address ".href("http://forge.info.univ-angers.fr/~gh/wstat/Eda/diabetes.dar").". " ;
00339     finp
() ;
00340     p
("texte") ;
00341     echo " Beware that the first line is the name of the columns and that the first column gives the names of the lines." 
;
00342     finp
() ;
00343     p
("texte") ;
00344     echo " Remove all the lines with "
.b("NA")." for the ".b("bp.1s")." variable. Which column has then the maximum of NA values?" ;
00345     finp
() ;
00346     p
("texte") ;
00347     echo em
(" Hint:")." use ".b("apply")." and an anonymous function." ;
00348     finp
() ;
00349     finblockquote
() ;
00350     
00351     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00352     blockquote
() ;
00353     p
("texte") ;
00354     echo " Use again the "
.b("diabetes")." dataset. Compute and add  to this dataset with a single instruction the categorical variable ".b("ageCL") ;
00355     echo " based on the rule "
.b("'young'")." if age&lt;18, ".b("'old'")." otherwise. " ;
00356     finp
() ;
00357     p
("texte") ;
00358     echo "When you modify a data frame, what are the differences between the "
.b("transform")." and ".b("mutate")." functions?" ;
00359     finp
() ;
00360     finblockquote
() ;
00361     
00362     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00363     blockquote
() ;
00364     p
("texte") ;
00365     echo " What is the most efficient way to compute and display the maximal value and the number of times it occurs in a vector with many many values?" 
;
00366     echo " How can you prove it?" 
;
00367     finp
() ;
00368     finblockquote
() ;
00369     
00370     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00371     blockquote
() ;
00372     p
("texte") ;
00373     echo " Describe an ordinal variable with counts, percentages and cumulated frequencies without any for loop " 
;
00374     echo " like the following table." 
# for the ??? variable in the ??? dataset." ;
00375     #echo " As usual, no loops. Don't forget the NA values." ;
00376     echo 
" Don't forget the NA values." ;
00377     finp
() ;
00378     pre_fichier
("decritordinal.sor","cadrebleu") ;
00379     finblockquote
() ;
00380     
00381     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00382     blockquote
() ;
00383     p
("texte") ;
00384     echo " Build a graphical description of a continuous variable with the curve for the estimation of the density and the normal candidate " 
;
00385     echo " curve like the one below." 
# , using the ??? variable in the ??? dataset." ;
00386     finp
() ;
00387     p
() ;
00388     $img 
"decritqt.png" ;
00389     nbsp
(7) ;
00390     echo href
($img,img($img,"",400)) ;
00391     finp
() ;
00392     p
("texte") ;
00393     echo " Make a function of your instructions. Which parameters are needed?" 
;
00394     finp
() ;
00395     finblockquote
() ;
00396     
00397     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00398     blockquote
() ;
00399     p
("texte") ;
00400     echo "What are the pros and cons of the "
.b("ggplot2")." and ".b("lattice")." packages compared to classical plots in $R?" ;
00401     finp
() ;
00402     finblockquote
() ;
00403     
00404     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00405     blockquote
() ;
00406     p
("texte") ;
00407     echo " Are you able to use "
.b("Shiny")." and a ".b("Jupyter $R notebook")." to have a small app in $R?" ;
00408     echo " Prove it." 
;
00409     finp
() ;          http://biostat.mc.vanderbilt.edu/tmp/course.pdf
00410     finblockquote
() ;
00411     
00412     finblockquote
() ; # de section
00413     
00414     ## -------------------------------------------------------------------------------------------
00415     
00416     $tdmCRLM
->afficheRubrique("oui") ; #
00417     
00418     ## -------------------------------------------------------------------------------------------
00419     
00420     blockquote
() ;
00421     
00422     p
("texte") ;
00423     echo " Let's check it. " 
;
00424     echo " Use "
.href("https://www.rstudio.com","Rstudio","gvert")." to edit, run, debug and profile (you said you were a programmer, right?) your code. " ;
00425     finp
() ;
00426     $numExo 
;
00427     
00428     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00429     blockquote
() ;
00430     p
("texte") ;
00431     echo " Use the "
.b("iris")." dataset. " ;
00432     echo " Apply the "
.b("summary")." function for all numeric columns for each species with a single instruction. " ;
00433     finp
() ;
00434     p
("texte") ;
00435     echo em
(" Hint:")." use an anonymous function for ".b("tapply")."." ;
00436     finp
() ;
00437     finblockquote
() ;
00438     
00439     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00440     blockquote
() ;
00441     p
("texte") ;
00442     echo " Create a "
.b("cats")." function that underlines a string with a given character, use \"=\" as default." ;
00443     finp
() ;
00444     p
("texte") ;
00445     echo " Example:" 
;
00446     finp
() ;
00447     pre_fichier
("cats.sor","cadre") ;
00448     finblockquote
() ;
00449     
00450     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00451     blockquote
() ;
00452     p
("texte") ;
00453     echo " Create a "
.b("timer")." function that prints the date and time before and after executing " ;
00454     echo " some code and that computes the duration of the execution." 
;
00455     finp
() ;
00456     pre_fichier
("timer.sor","cadre") ;
00457     p
("texte") ;
00458     echo em
(" Hint:")." use the ellipsis for the parameter of the function." ;
00459     finp
() ;
00460     finblockquote
() ;
00461     
00462     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00463     blockquote
() ;
00464     p
("texte") ;
00465     echo " Create a  function "
.b("extractPvalue")." that extracts the p-value of a t-test. For example : " ;
00466     finp
() ;
00467     pre_fichier
("pvalue1.sor","cadre") ;
00468     p
("texte") ;
00469     echo " Create a function "
.b("extractPvalues")." that produces a table of all t-tests for the columns of a data frame, using the name of the factor as a parameter. ";
00470     echo " For example: " 
;
00471     finp
() ;
00472     pre_fichier
("pvalue2.sor","cadre") ;
00473     p
("texte") ;
00474     echo " The iris2 data frame corresponds to the iris dataset without the \"setosa\" flowers. " 
;
00475     echo " Define it with a single instruction." 
;
00476     finp
() ;
00477     p
("texte") ;
00478     echo em
(" Hint:")." in ".b("extractPvalues")." use ".b("apply")." with an anonymous function that calls the ".b("extractPvalue")." function from previous exercise." ;
00479     finp
() ;
00480     finblockquote
() ;
00481     
00482     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00483     blockquote
() ;
00484     p
("texte") ;
00485     echo " Define a function that uses a quantitative variable and two factors and displays the boxplots side by side " 
;
00486     echo " as in the example of the tooth growth for the guinea pigs found in "
.b('example("boxplot")').". " ;
00487     echo " Don't forget the legend." 
;
00488     finp
() ;
00489     finblockquote
() ;
00490     
00491     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00492     blockquote
() ;
00493     p
("texte") ;
00494     echo " The chi-square test function computes only the value of the test statistic but doesn't show where the main differences between the theoretical " 
;
00495     echo " and the observed values are. Define a function that details the contribution (theo-obs)²/theo for each level and that sorts them by relative importance. " 
;
00496     echo " As usual, no loops. " 
;
00497     echo " Here is an example:" 
;
00498     finp
() ;
00499     pre_fichier
("chisq.sor","cadre") ;
00500     finblockquote
() ;
00501     
00502     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00503     blockquote
() ;
00504     p
("texte") ;
00505     echo " Define a function that displays all the subsets of a given set. For example for "
.b('givenSet&nbsp;&lt;-&nbsp;c("a","b","c")') ;
00506     echo " it must display something like:" 
;
00507     finp
() ;
00508     pre_fichier
("subsets.sor","cadre") ;
00509     p
("texte") ;
00510     echo " The subsets must be numbered and produced with an increasing number of elements (variant: decreasing) and displayed " 
;
00511     echo " in alphabetic order. " 
;
00512     finp
() ;
00513     p
("texte") ;
00514     echo " Which part of the biostatistics or bioinformatics may need these subsets?" 
;
00515     echo " Try to produce both iterative and recursive solutions." 
;
00516     finp
() ;
00517     finblockquote
() ;
00518     
00519     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00520     blockquote
() ;
00521     p
("texte") ;
00522     echo " Run the "
.b('library("gdata")')." instruction and check that it displays some information. " ;
00523     echo " Define a function "
.b(".library")." (yes, with a dot at the beginning) that "  ;
00524     echo " loads silently the libray, that is that supresses the warning outputs." 
;
00525     echo " What is the use of the dot at the beginning of the function's name?" 
;
00526     finp
() ;
00527     finblockquote
() ;
00528     
00529     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00530     blockquote
() ;
00531     p
("texte") ;
00532     echo " Write a function that finds the longest common subsequence of n (greater than two) aminoacid sequences. " 
;
00533     echo " Beware that this is not the same problem as finding the longest common substring. " 
;
00534     echo " Describe first the method and its complexity using "
.em("O(n)")." notation. " ;
00535     echo " Is it possible to use it for DNA sequences which may be very very long?" 
;
00536     echo " Prove that it is "
.ghvert("fast")." by profiling your code." ;
00537     finp
() ;
00538     finblockquote
() ;
00539     
00540     $numExo
++ ; h3("Exercise $numExo","gbleu") ;
00541     blockquote
() ;
00542     p
("texte") ;
00543     echo " Build a small example for a class of statistical objets (continuous, factor...) with basic methods (size, describe, plot... ) " 
;
00544     echo " using R4, R5 and R6 formalism in order to explain the pros and cons of these three object oriented mecanisms in 
$R." ;
00545     finp
() ;
00546     p
("texte") ;
00547     echo "Why must every 
$R programmer decide to learn ".b("tidyverse")." or not?" ;
00548     finp
() ;
00549     
00550     p
("texte") ;
00551     echo " What is the best 
$R package to run \"".b("serious")."\" tests (unit tests, integration tests...) in $R?" ;
00552     finp
() ;
00553     finblockquote
() ;
00554     
00555     finblockquote
() ; # section
00556     
00557     ## -------------------------------------------------------------------------------------------
00558     
00559     $tdmCRLM
->afficheRubrique("oui") ; #
00560     
00561     ## -------------------------------------------------------------------------------------------
00562     
00563     blockquote
() ;
00564     
00565     p
("texte") ;
00566     echo "Great. So use 
$Python to solve the exercises " ;
00567     echo " from section 2 ("
.em("&laquo; I think I know $R for statistics and bioinformatics&raquo;").") and " ;
00568     echo " from section 3 ("
.em("&laquo; I think I know how to program in $R&raquo;")."). " ;
00569     echo " Then send me at "
.b("gilles.hunault@univ-angers.fr")." your scripts so I can check your programming skills." ;
00570     finp
() ;
00571     
00572     finblockquote
() ; # section
00573     
00574     
00575     ######################################################################################################
00576     
00577     pvide
() ;
00578     p
("texte") ;
00579     echo b
(ghRouge("Final note:")) ;
00580     echo " selected answers to the exercises are hidden but clickable on " 
;
00581     echo href
("answers.r","this","noir nou")." page. " ;
00582     echo " Do you like to "
.href("answers.txt","&nbsp;play&nbsp;","bouton_fin bleu_pastel nou")." hide and seek?" ;
00583     finp
() ;
00584     
00585     $sol 
;
00586     if (isset($_GET
["sol"])) { $sol ; } ;
00587     if (isset($_GET
["solution"])) { $sol ; } ;
00588     if (isset($_GET
["solutions"])) { $sol ; } ;
00589     if ($sol
==1) {
00590     p
() ;
00591     echo "All solutions are " 
;
00592     echo href
("answers.txt","here")."." ;
00593     finp
() ;
00594     } ; # fin si
00595     
00596     ######################################################################################################
00597     
00598     p
() ;
00599     echo href
("montresource.php?nomfic=index.php","Source code for this page (php)","orange_stim nou") ;
00600     finp
() ;
00601     
00602     ######################################################################################################
00603     
00604     finSection
() ;
00605     finPage
() ;
00606     ?>

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)