Functies voor pakketten bouwen

R-pakketten ontwikkelen

Jasmin Ludolf

Content Developer

Structuur van een R-pakket

Voorbeeld van pakkettenstructuur

R-pakketten ontwikkelen

Verschillende temperatuurschalen

  • Wat is 35 graden Celsius (C) in Fahrenheit (F)?

Verward op het strand

R-pakketten ontwikkelen

Omrekenen met R

 

C_value <- 35
F <- 9/5 * C_value + 32
F
[1] 95
R-pakketten ontwikkelen

Opfrissing R-functies

temp_converter <- function(

value, unit_from = "Celsius", unit_to = "Fahrenheit") {
if (unit_from == "Celsius" && unit_to == "Fahrenheit") { return(value * 9/5 + 32)
} else if (unit_from == "Fahrenheit" && unit_to == "Celsius") { return((value - 32) * 5/9)
} else if (unit_from == unit_to) { warning("unit_from and unit_to are the same, value returned.") return(value)
} else { stop("Invalid unit_from or unit_to. Only 'Celsius' and 'Fahrenheit' are accepted.") } }
R-pakketten ontwikkelen

temp_converter() gebruiken

temp_converter(100)
[1] 212
temp_converter(95, unit_from = "Fahrenheit", unit_to = "Celsius")
[1] 35
R-pakketten ontwikkelen

Beste praktijken voor R-functies

  1. Kies beschrijvende namen
  2. Ga netjes om met alle input
  3. Focus op één ding
R-pakketten ontwikkelen

Sla een functie op in een bestand

dump("temp_converter", 
     file = "R/temp_converter.R")

Huidige structuur van het unitConverter-pakket

R-pakketten ontwikkelen

Installeer het pakket met devtools

devtools::install()
-  checking for file 'DESCRIPTION' ...
-  preparing 'unitConverter':
-  checking DESCRIPTION meta-information ...
  --install-tests 
* installing to library
* installing *source* package 'unitConverter' ...
** R
** data
** inst
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
* DONE (unitConverter)
R-pakketten ontwikkelen

Voer temp_converter() uit op temperature_data

value unit
36.26 Celsius
library(unitConverter)

unitConverter:::temp_converter(
value = temperature_data$value[1], unit_from = temperature_data$unit[1], unit_to = "Fahrenheit")
[1] 97.268
R-pakketten ontwikkelen

Laten we oefenen!

R-pakketten ontwikkelen

Preparing Video For Download...