Onderdelen van een R-package

R-pakketten ontwikkelen

Jasmin Ludolf

Content Developer

De kracht van R-packages

 

  • Deel en hergebruik code in projecten, bedrijf en community

 

Deze course:

  • Bouw R-packages vanaf de basis
  • Inclusief documentatie en testen

Community-art over R-packages

R-pakketten ontwikkelen

Onderdelen van een R-package

Voorbeeld van packagestructuur

1 Boom gegenereerd met https://tree.nathanfriend.io/
R-pakketten ontwikkelen

Onderdelen van een R-package

 

  • Functies
  • Data

Voorbeeld van packagestructuur

R-pakketten ontwikkelen

Onderdelen van een R-package

 

  • Ondersteunende bestanden:
    • DESCRIPTION
    • NAMESPACE

Voorbeeld van packagestructuur

R-pakketten ontwikkelen

Onderdelen van een R-package

 

  • R Markdown-templates:
    • Werken met het package
  • R Markdown wordt gebruikt voor dynamische rapporten

Voorbeeld van packagestructuur

R-pakketten ontwikkelen

Onderdelen van een R-package

 

  • Documentatie
    • Voorbeelden van functiegebruik

Voorbeeld van packagestructuur

R-pakketten ontwikkelen

Onderdelen van een R-package

 

  • Unittests
    • Geautomatiseerde tests
    • Zorgt dat functies en code correct werken

Voorbeeld van packagestructuur

R-pakketten ontwikkelen

Onderdelen van een R-package

 

  • Vignetten
    • Uitgebreide pakket-tutorials

Voorbeeld van packagestructuur

R-pakketten ontwikkelen

Kernfunctionaliteit van een package

Minimaal moeten R-packages bevatten:

  • Map R
  • Map man
  • Bestand NAMESPACE
  • Bestand DESCRIPTION
R-pakketten ontwikkelen

Map R

 

  • Hier staan de functies van het package
  • Aparte bestanden per onderdeel van het package
  • Voeg een bestand toe met pakketnaam en details

 

Indeling R-map

R-pakketten ontwikkelen

Map man

 

  • man-map (manual)
  • Documentatie over functies en objecten

 

Indeling man-map

R-pakketten ontwikkelen

NAMESPACE

  • Toont functies geïmporteerd uit andere packages
  • Lijst van functies beschikbaar voor gebruikers
# Generated by roxygen2: do not edit by hand
export(distance_converter)
export(temp_converter)

importFrom(tibble,tibble)
R-pakketten ontwikkelen

DESCRIPTION

  • Bevat package-metadata
Package: ourPackage
Title: What the Package Does (One Line, Title Case)
Version: 0.0.0.9000
Authors@R: 
    person("First", "Last", , "[email protected]", role = c("aut", "cre"),
           comment = c(ORCID = "YOUR-ORCID-ID"))
Description: What the package does (one paragraph).
License: `use_mit_license()`, `use_gpl3_license()` or friends to pick a
    license
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.3
Depends: 
    R (>= 2.10)
LazyData: true
R-pakketten ontwikkelen

Laten we oefenen!

R-pakketten ontwikkelen

Preparing Video For Download...