Pakket bouwen

R-pakketten ontwikkelen

Jasmin Ludolf

Content Developer

Converter voor tijdseenheden

time_converter <- function(time, unit_from, unit_to) {
  # Define conversion factors for different time units
  conversion_factors <- c(hour = 3600, minute = 60, second = 1)

  # Convert time to seconds
  in_seconds <- time * conversion_factors[unit_from]

  # Convert time from seconds to the desired unit
  return(unname(in_seconds / conversion_factors[unit_to]))
}
R-pakketten ontwikkelen

Gebruik time_converter() en voeg toe aan pakketmap

time_converter(24, "hours", "seconds")
86400
dump("time_converter", file = "R/time_converter.R")
R-pakketten ontwikkelen

Alle bestanden in het pakket laden

library(devtools)
load_all()
- Loading unitConverter
  • Laadt pakketbestanden in de huidige R-sessie
  • Maakt testen, debuggen en correctheidscontroles mogelijk vóór installatie
R-pakketten ontwikkelen

Dom typfoutje

time_converter <-
function(time, unit_from, unit_to) {
  if ( (unit_from == "hours" && unit_to == "minutes") ||
       (unit_from == "minutes" && unit_to == "seconds") ) {
    return(time * 60)
  } else if ( (unit_from == "minutes" && unit_to == "hours") ||
              (unit_from == "seconds" && unit_to == "minutes") ) {
    return(time / 60)
  } else if (unit_from == "hours" && unit_to == "seconds") {
    return(time * 3600)
  } else if (unit_from == "seconds" && unit_to == "hours") {
    return(time / 3600)
  } else {
    return(time)  # No conversion needed

}
R-pakketten ontwikkelen

Fouten opsporen met load_all()

load_all()
- Loading unitConverter
Error in `load_all()`:
! Failed to load R/time_converter.R
Caused by error in `parse()`:
! ~/unitConverter/R/time_converter.R:17:0: unexpected end of input
15: 
16: }
   ^
Run `rlang::last_trace()` to see where the error occurred.
R-pakketten ontwikkelen

Verschillen tussen load_all() en install()

load_all()

  • Tijdens ontwikkeling
  • Laadt pakketinhoud in de huidige R-sessie
  • Test functionaliteit vóór installatie

install()

  • Gebruik na load_all() tijdens ontwikkeling
  • Installeert een pakket
  • Werkt een geïnstalleerd pakket bij
R-pakketten ontwikkelen

Pakketeisen programmatisch controleren

check()
  • Syntaxiscontrole
  • Pakketafhankelijkheden
  • Documentatiekwaliteit
  • Codeerstandaarden
  • En meer
R-pakketten ontwikkelen

Voorbeelden van check()-output

Voorbeeld laatste regel van check()-output

0 errors  | 2 warnings X | 1 note X

Ideale staat

0 errors  | 0 warnings | 0 notes
  • Errors: ernstige issues die je moet fixen vóór acceptatie
  • Warnings: mogelijke problemen of schendingen van best practices
  • Notes: suggesties, bv. extra documentatie
R-pakketten ontwikkelen

Laten we oefenen!

R-pakketten ontwikkelen

Preparing Video For Download...