Build del package

Sviluppare pacchetti R

Jasmin Ludolf

Content Developer

Convertitore di unità di tempo

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]))
}
Sviluppare pacchetti R

Usa time_converter() e aggiungilo alla directory del package

time_converter(24, "hours", "seconds")
86400
dump("time_converter", file = "R/time_converter.R")
Sviluppare pacchetti R

Carica tutti i file del package

library(devtools)
load_all()
- Loading unitConverter
  • Carica i file del package nella sessione R corrente
  • Permette test, debug e controlli prima dell’installazione
Sviluppare pacchetti R

Refuso banale

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

}
Sviluppare pacchetti R

Rilevare errori con 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.
Sviluppare pacchetti R

Differenze tra load_all() e install()

load_all()

  • Usato in sviluppo
  • Carica i contenuti del package nella sessione R corrente
  • Testa le funzioni prima di installare

install()

  • Usabile in sviluppo dopo load_all()
  • Installa un package
  • Aggiorna un package installato
Sviluppare pacchetti R

Verifica dei requisiti del package in modo programmatico

check()
  • Controlli di sintassi
  • Dipendenze del package
  • Qualità della documentazione
  • Standard di codice
  • Altro ancora
Sviluppare pacchetti R

Esempi di output di check()

Esempio ultima riga di output da check()

0 errors  | 2 warnings X | 1 note X

Stato ideale

0 errors  | 0 warnings | 0 notes
  • Errori: problemi gravi da correggere prima che il package sia accettabile
  • Avvisi: possibili problemi o violazioni di best practice
  • Note: suggerimenti, es. documentazione aggiuntiva
Sviluppare pacchetti R

Ayo berlatih!

Sviluppare pacchetti R

Preparing Video For Download...