Valid XHTML     Valid CSS2    

Listing du fichier perf4.php

 

00001     <?php
00002     #   # (gH)   -_-  perf4.php  ;  TimeStamp (unix) : 19 Ao&ucirc;t 2014 vers 17:20
00003     
00004     error_reporting
(E_ALL E_NOTICE E_STRICT) ;
00005     
00006     include_once("std7.php"
) ;
00007     include_once("perf_inc.php"
) ;
00008     include_once("../../statuno7.php"
) ;
00009     
00010     $R 
s_span("R","gbleuf") ;
00011     
00012     $numSerie 
;
00013     debutPageExoScr1
($numSerie) ;
00014     
00015     ## -------------------------------------------------------------------------------------------
00016     
00017     sdl
(3) ; echo cmt(' pour afficher toutes les solutions : intror1.php?solutions=1') ; sdl(3) ;
00018     
00019     ## -------------------------------------------------------------------------------------------
00020     
00021     p
("texte") ;
00022     echo "" 
;
00023     finp
() ;
00024     debutSection
() ;
00025     
00026     $tableauDesRubriques 
= array() ;
00027     $idr 
;
00028     #$idr++; $tableauDesRubriques[$idr] = "Que peut-on et que doit-on automatiser avec R&nbsp;?" ;
00029     $idr
++; $tableauDesRubriques[$idr] = "Notion de script $R# , gestion des entr&eacute;es et sorties avec $R" ;
00030     $idr
++; $tableauDesRubriques[$idr] = "D&eacute;finition des fonctions en $R;
00031     $idr
++; $tableauDesRubriques[$idr] = "Interaction utilisateur et gestion de liste de fichiers" ;
00032     #$idr++; $tableauDesRubriques[$idr] = "Initiation simpliste &agrave; la programmation en $R" ;
00033     $idr
++; $tableauDesRubriques[$idr] = "R&eacute;f&eacute;rences bibliographiques pour l'ensemble des s&eacute;ances" ;
00034     $tdmCRLM 
= new tdm($tableauDesRubriques) ;
00035     $tdmCRLM
->titre() ;
00036     $tdmCRLM
->menu("oui","oui","nou") ;
00037     
00038     pvide
() ;
00039     
00040     p
() ;
00041      echo "Il est possible d'afficher toutes les solutions via "
.href("perf4.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou")." " ;
00042      echo " et de toutes les masquer avec via "
.href("perf4.php?solutions=0","?solutions=0","bouton_fin orange_pastel nou").". " ;
00043     finp
() ;
00044     
00045     finSection
() ;
00046     
00047     debutSection
() ;
00048     $numExo 
;
00049     /*
00050     ## -------------------------------------------------------------------------------------------
00051     
00052     $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; #  Que peut-on et que doit-on automatiser avec R ?
00053     
00054     ## -------------------------------------------------------------------------------------------
00055     
00056     blockquote() ;
00057     
00058     blockquote() ;
00059     
00060     p("texte") ;
00061     echo "" ;
00062     finp() ;
00063     
00064     finblockquote() ;
00065     
00066     solution($numExo,$numSerie) ;
00067     
00068     p("texte") ;
00069     echo "" ;
00070     finp() ;
00071     
00072     finsolution() ;
00073     
00074     finblockquote() ;
00075     
00076     */
00077     ## -------------------------------------------------------------------------------------------
00078     
00079     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; #  Notion de script, gestion des entr&eacute;es et sorties avec R
00080     
00081     
00082     ## -------------------------------------------------------------------------------------------
00083     
00084     blockquote
() ;
00085     
00086     blockquote
() ;
00087     
00088     p
("texte") ;
00089     echo "Qu'est-ce qu'un script 
$R&nbsp;?" ;
00090     echo " Est-ce forc&eacute;ment un programme&nbsp;?" 
;
00091     echo " Est-ce forc&eacute;ment une fonction&nbsp;?" 
;
00092     finp
() ;
00093     
00094     p
("texte") ;
00095     echo "Commenter le script suivant&nbsp;:" 
;
00096     finp
() ;
00097     
00098     pre_fichier
("unscript.r","cadre") ;
00099     
00100     p
("texte") ;
00101     echo "Est-ce un "
.b('"bon"')." script&nbsp;?" ;
00102     echo " Comment l'am&eacute;liorer&nbsp;?" 
;
00103     echo " Peut-on en faire une fonction&nbsp;?" 
;
00104     echo " Quels en seraient les param&egrave;tres&nbsp;?" 
;
00105     finp
() ;
00106     
00107     finblockquote
() ;
00108     
00109     solution
($numExo,$numSerie) ;
00110     
00111     p
("texte") ;
00112     echo "Un script est en quelque sorte un programme puisque c'est un ensemble d'instructions que 
$R ex&eacute;cute dans l'ordre des lignes. " ;
00113     echo " Ce n'est pas forc&eacute;ment une fonction, mais cela peut contenir des d&eacute;finitions et des appels de fonctions. " 
;
00114     echo " Le script propos&eacute; ne d&eacute;finit aucune fonction. " 
;
00115     finp
() ;
00116     
00117     p
("texte") ;
00118     echo "Ce script vient lire un fichier Excel nomm&eacute; "
.b("essai.xls") ;
00119     echo " et calcule la moyenne de la colonne nomm&eacute;e AGE apr&egrave;s avoir enlev&eacute; les valeurs manquantes dans cette colonne AGE." 
;
00120     finp
() ;
00121     
00122     p
("texte") ;
00123     echo "Est-ce un "
.b('"bon"')." script&nbsp;?" ;
00124     echo " Oui, presque s'il s'agit juste de caculer la moyenne de l'age. " 
;
00125     echo " Mais il y avait plus court, si c'&eacute;tait juste un calcul \"&agrave; la vol&eacute;e\"&nbsp;: " 
;
00126     finp
() ;
00127     
00128     pre_fichier
("unscript2.r","cadre") ;
00129     
00130     p
("texte") ;
00131     echo "Le  "
.b('"presque"')." vient de l'absence de l'instruction ";
00132     echo b
("library(gdata)")." sans laquelle le script ne fonctionne pas car, en standard, le package " ;
00133     echo hrrp
("gdata")." n'est pas charg&eacute;." ;
00134     finp
() ;
00135     
00136     p
("texte") ;
00137     echo  "Un "
.b('"vrai"')." script comporte en g&eacute;n&eacute;ral des commentaires, un peu d'explications pour dire ce qu'on " ;
00138     echo  " fait, qui l'a fait. On essaie en g&eacute;n&eacute;ral de grouper les noms de fichiers, de colonnes en d&eacute;but de script, " 
;
00139     echo  " de fa&ccedil;on &agrave; pouvoir facilement s'en servir sur d'autres donn&eacute;es, comme par exemple&nbsp;:" 
;
00140     finp
() ;
00141     
00142     pre_fichier
("unscript3.r","cadre") ;
00143     
00144     p
("texte") ;
00145     echo  "On pourrait am&eacute;liorer le script en le transformant en une fonction qui prend comme param&egrave;tres le nom du fichier et le nom " 
;
00146     echo  " de la colonne &agrave; traiter, soit&nbsp;:" 
;
00147     finp
() ;
00148     
00149     entree_R
("unscript4.r") ;
00150     
00151     p
("texte") ;
00152     echo  "Voici des exemples d'utilisation&nbsp;: " 
;
00153     finp
() ;
00154     
00155     sortie_R
("unscript4.res") ;
00156     
00157     
00158     finsolution
() ;
00159     
00160     finblockquote
() ;
00161     
00162     ## -------------------------------------------------------------------------------------------
00163     
00164     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; #  D&eacute;finition des fonctions en R
00165     
00166     ## -------------------------------------------------------------------------------------------
00167     
00168     blockquote
() ;
00169     
00170     blockquote
() ;
00171     
00172     p
("texte") ;
00173     echo b
("Application&nbsp;:")." &eacute;crire une fonction qui renvoie le nombre de valeurs NA pr&eacute;sents dans un vecteur. " ;
00174     echo " Comment l'appliquer &agrave; chacune des colonnes d'une matrice ou d'un data frame&nbsp;?" 
;
00175     finp
() ;
00176     
00177     p
("texte") ;
00178     echo " Compl&eacute;ter en renvoyant ensuite &agrave; la fois le nombre de valeurs NA et le pourcentage correspondant." 
;
00179     echo " Appliquer &eacute;galement &agrave; chacune des colonnes d'une matrice ou d'un data frame." 
;
00180     finp
() ;
00181     
00182     p
("texte") ;
00183     echo "On pourra utiliser le fichier Excel "
.href("essai.xls")." pour tester les fonctions." ;
00184     finp
() ;
00185     
00186     finblockquote
() ;
00187     
00188     solution
($numExo,$numSerie) ;
00189     
00190     p
("texte") ;
00191     echo " Pour calculer le nombre de NA dans un vecteur V on peut se contenter de l'instruction&nbsp;: "
.b("sum(is.na(V))").". " ;
00192     echo " Puisque les fonctions utilis&eacute;es dans ce calcul, &agrave; savoir " 
;
00193     echo hrrr
("sum") ;
00194     echo " et " 
;
00195     echo hrrr
("NA","","is.na()") ;
00196     echo " sont "
.b("vectorielles").", on peut utiliser " ;
00197     echo hrrr
("apply") ;
00198     echo " pour l'appliquer aux colonnes d'une structure. " 
;
00199     echo " Voici la fonction associ&eacute;e et son utilisation " 
;
00200     echo " (fichier "
.href("nbnav1.r").") " ;
00201     echo "&nbsp;:" 
;
00202     finp
() ;
00203     
00204     entree_R
("nbnav1.r") ;
00205     sortie_R
("nbnav1.res") ;
00206     
00207     p
("texte") ;
00208     echo "Renvoyer le nombre de NA et le pourcentage correspondant demande un plus gros effort de " 
;
00209     echo " r&eacute;daction " 
;
00210     echo " (fichier "
.href("nbnav2.r").") " ;
00211     echo "&nbsp;:" 
;
00212     finp
() ;
00213     
00214     entree_R
("nbnav2.r") ;
00215     sortie_R
("nbnav2.res") ;
00216     
00217     p
("texte") ;
00218     echo "On a fait le choix ici d'utiliser un vecteur pour renvoyer les r&eacute;sultats. Il est classique d'utiliser plut&ocirc;t une liste, " 
;
00219     echo " mais cela &laquo;g&acirc;che&raquo; un peu les sorties directes de r&eacute;sultats sur &eacute;cran avec " 
;
00220     echo hrrr
("apply") ;
00221     echo " et il est conseill&eacute; d'utiliser alors " 
;
00222     echo hrrr
("lapply","","sapply()").". " ;
00223     echo " Attention&nbsp;: " 
;
00224     echo hrrr
("lapply","","sapply()")." " ;
00225     echo " ne fonctionne bien qu'avec des listes -- donc avec des data frames -- en entr&eacute;e mais pas avec des matrices" 
;
00226     echo " (fichier "
.href("nbnav3.r").") " ;
00227     echo " &nbsp;:" 
;
00228     finp
() ;
00229     
00230     entree_R
("nbnav3.r") ;
00231     sortie_R
("nbnav3.res") ;
00232     
00233     finsolution
() ;
00234     
00235     finblockquote
() ;
00236     
00237     ## -------------------------------------------------------------------------------------------
00238     
00239     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Interaction utilisateur et gestion de liste de fichiers
00240     
00241     ## -------------------------------------------------------------------------------------------
00242     
00243     blockquote
() ;
00244     
00245     blockquote
() ;
00246     
00247     p
("texte") ;
00248     echo " Ecrire une fonction qui affiche le nombre de valeurs manquantes des colonnes d'un ou plusieurs fichiers Excel" 
;
00249     echo " pass&eacute;s en param&egrave;tre. Si aucun param&egrave;tre, la fonction doit afficher le gestionnaire de fichiers pour qu'on puisse " 
;
00250     echo " s&eacute;lectionner le fichier. " 
;
00251     echo "On pourra utiliser les fichier Excel "
.href("essai.xls")." et ".href("war2.xls")." pour tester la fonction." ;
00252     finp
() ;
00253     
00254     finblockquote
() ;
00255     
00256     solution
($numExo,$numSerie) ;
00257     
00258     p
("texte") ;
00259     echo "Un examen d&eacute;taill&eacute; de la solution ci-dessous montre que nous avons utilis&eacute; une fonction anonyme " 
;
00260     echo " pour calculer le nombre de NA et que le parcours de vecteurs de chaines de caract&egrave;res est d'une " 
;
00261     echo " grande simplicit&eacute; en R " 
;
00262     echo " (fichier "
.href("nbnav4.r").") " ;
00263     echo " &nbsp;:" 
;
00264     finp
() ;
00265     
00266     entree_R
("nbnav4.r") ;
00267     sortie_R
("nbnav4.res") ;
00268     
00269     p
("texte") ;
00270     echo "Il aurait &eacute;t&eacute; possible d'&eacute;crire une solution plus fonctionnelle et sans boucle explicite " 
;
00271     echo " avec une fonction locale (traiteFic) " 
;
00272     echo " comme " 
;
00273     echo " (fichier "
.href("nbnav5.r").") " ;
00274     echo " &nbsp;:" 
;
00275     finp
() ;
00276     
00277     entree_R
("nbnav5.r") ;
00278     sortie_R
("nbnav5.res") ;
00279     
00280     p
("texte") ;
00281     echo " Mais un \"puriste\" aurait sans doute pr&eacute;f&eacute;r&eacute; la solution suivante sans fonction interne explicite " 
;
00282     echo " (fichier "
.href("nbnav6.r").") " ;
00283     echo " &nbsp;:" 
;
00284     finp
() ;
00285     
00286     entree_R
("nbnav6.r") ;
00287     sortie_R
("nbnav6.res") ;
00288     
00289     finsolution
() ;
00290     
00291     finblockquote
() ;
00292     
00293     /*
00294     ## -------------------------------------------------------------------------------------------
00295     
00296     $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; #  Initiation simpliste &agrave; la programmation en R
00297     
00298     
00299     ## -------------------------------------------------------------------------------------------
00300     
00301     blockquote() ;
00302     
00303     blockquote() ;
00304     
00305     p("texte") ;
00306     echo "Ecrire une fonction qui compte le nombre de fois o&ugrave; le min et le max d'un vecteur sont atteints " ;
00307     echo " pour un vecteur pass&eacute; en param&egrave;tre. On affichera l'aide si aucun param&egrave;tre n'est pass&eacute;, on renverra " ;
00308     echo " une liste avec les r&eacute;sultats, qu'on affichera si elle n'est pas affect&eacute;e &agrave; une variable au niveau " ;
00309     echo " de l'appel de la fonction. " ;
00310     finp() ;
00311     
00312     finblockquote() ;
00313     
00314     solution($numExo,$numSerie) ;
00315     
00316     p("texte") ;
00317     echo "" ;
00318     finp() ;
00319     
00320     finsolution() ;
00321     
00322     finblockquote() ;
00323     */
00324     
00325     ## -------------------------------------------------------------------------------------------
00326     
00327     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # R&eacute;f&eacute;rences bibliographiques pour l'ensemble des s&eacute;ances
00328     
00329     
00330     ## -------------------------------------------------------------------------------------------
00331     
00332     blockquote
() ;
00333     
00334     blockquote
() ;
00335     
00336     p
("texte") ;
00337     echo "Que lire pour approfondir tout cela&nbsp;?" 
;
00338     finp
() ;
00339     
00340     finblockquote
() ;
00341     
00342     solution
($numExo,$numSerie) ;
00343     
00344     p
("texte") ;
00345     echo "Plein de choses&nbsp;!" 
;
00346     finp
() ;
00347     
00348     p
("texte") ;
00349     echo "Il faut d'abord choisir si on veut approfondir le langage R, les statistiques ou la programmation. " 
;
00350     echo " Ensuite, il n'y a plus que l'embarras du choix. " 
;
00351     finp
() ;
00352     
00353     p
("texte") ;
00354     echo " Voir par exemple ma question sur les " 
;
00355     echo  href
("../Programmation_R/progr.php?n=1&amp;m=e#livres","livres")." pour R " ;
00356     echo " et sa "
.href("../Programmation_R/progr.php?n=1&amp;m=s#matloff","r&eacute;ponse")." associ&eacute;e " ;
00357     echo " dans mes pages de "
.href("../Programmation_R/","programmation R avanc&eacute;e").". " ;
00358     finp
() ;
00359     
00360     finsolution
() ;
00361     
00362     finblockquote
() ;
00363     
00364     ## -------------------------------------------------------------------------------------------
00365     
00366     finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans perf_inc.php
00367     
00368     ?>

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)