Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4....

15
CONSTRUIRE UN PACKAGE AVEC R Christophe Genolini

Transcript of Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4....

Page 1: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

CONSTRUIRE UN PACKAGE

AVEC R

Christophe Genolini

Page 2: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

Qu’est ce qu’un package ?

1. Programme 2. Données 3. Aides

+

4. Informations générales

Page 3: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

0. Idée

� Vous avez une idée ?

� Personne avant vous ? (forum)

�Allez-y !

Page 4: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

1. Programme

� Bonnes pratiques : nom des variables> n <- c(9,18,5,14)> a <- c(17,18,18,17)> nn <- 4> (m <- sum(n)/a)> (m <- sum(n)/a)

[1] 2.705882 2.555556 2.555556 2.705882

> noteEleves <- c(9,18,5,14)> ageEleves <- c(17,18,18,17)> nombreEleves <- 4> (moyenneNotes <- sum(noteEleves)/ageEleves)

[1] 2.705882 2.555556 2.555556 2.705882

Page 5: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

1. Programme

� Bonnes pratiques : indentationfor(x in 1:100){if(note[x]<10){if(note[x]<8){cat("Fail")}else{cat("You get it")}}

for(x in 1:100){if(note[x]<10){

if(note[x]<8){cat("Fail")

}else{cat("You get it")

}}

for(x in 1:100){if(note[x]<10){

if(note[x]<8){cat("Fail")

}else{}}else{

cat("You get it")}

}

Page 6: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

2. Données

� Tester le programme

� Présenter des exemples

� Être le plus général possible

11 / 12 / 12 / 22 / 33 / 44 / 36 / 71 / 101 / 121 / 1252 / 142 / 262 / 313 / 494 / 3176 / 721 / 10002 / 1215 / 1821 / 316 / 259 / 38 / 420 / 3016 / 783 / 1010 / 126 / 912 / 812 / 722 / 733

/ 644 / 536 / 273 / 10111 / 10212 / 10313

23 / 30 / 4-2 // 02 / 00 / 0-1 // -52 / -30 / -10-1

Page 7: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

4. Informations générales

� DESCRIPTION

Package: packClassicType: PackageTitle: Toy example of Pack ClassicVersion: 0.5.2Version: 0.5.2Date: 2009-10-15Author: Christophe GenoliniMaintainer: Christophe Genolini <[email protected]>Description: This package is an example of very simple packageLicense: GPL (>=2.0)LazyLoad: yesDepends: graphicsURL: www.r-project.org

Page 8: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

La DOC !!!

3. Plus que…

Page 9: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

3. La doc, la doc, la doc !!!

Page 10: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

Fini ! (ou presque)

/packClassic/

DESCRIPTION

NAMESPACE

Read-and-delete-me

/data/

dataAges.rda

/man//man/

packClassic-package.Rd

privateA.Rd

privateC.Rd

publicA.Rd

publicC.Rd

/R/

progClassic.R

Page 11: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

Presque :

� Compilation du package� Perl

� Latex

� Rtools

� HTML Help Workshop� HTML Help Workshop

� FTP sur le CRAN

FINI !!!

Page 12: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

Options

• Inclusion de code compilé (C, Fortran,…)

• Fonctions privées et publiques

• Programmation objet• Programmation objet

• Tests automatiques

Page 13: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

Biblio

Page 14: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

Biblio

Page 15: Construire un package - rug.mnhn.frrug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Genolini_280411.pdf · 4. Informations générales DESCRIPTION Package: packClassic Type: Package Title:

Biblio