Pourquoi je ne comprends pas votre code ?

Introduction à l'écriture de fonctions en R

Richie Cotton

Data Evangelist at DataCamp

Verbes dplyr

select() sélectionne des colonnes

filter() filtre des lignes

Introduction à l'écriture de fonctions en R

Un nom de fonction doit contenir un verbe

  • obtenir
  • calculer (ou calc)
  • exécuter
  • traiter
  • importer
  • nettoyer
  • mettre en ordre
  • tracer
Introduction à l'écriture de fonctions en R

lm() est mal nommé

  • Les sigles ne sont pas parlants
  • Il n'y a pas de verbe
  • Il existe de nombreux modèles linéaires

Un meilleur nom serait run_linear_regression()

Introduction à l'écriture de fonctions en R

Lisibilité vs. facilité de saisie

  • Comprendre le code >> le taper
Introduction à l'écriture de fonctions en R

Lisibilité vs. facilité de saisie

  • Comprendre le code >> le taper
  • Les éditeurs de code offrent l'autocomplétion

Saisie semi-automatique de DataCamp

Introduction à l'écriture de fonctions en R

Lisibilité vs. facilité de saisie

  • Comprendre le code >> le taper
  • Les éditeurs de code offrent l'autocomplétion
  • Vous pouvez créer des alias pour les fonctions courantes
h <- head
data(cats, package = "MASS")
h(cats)
  Sex Bwt Hwt
1   F 2.0 7.0
2   F 2.0 7.4
3   F 2.0 9.5
4   F 2.1 7.2
5   F 2.1 7.3
6   F 2.1 7.6
Introduction à l'écriture de fonctions en R

Arguments de lm()

args(lm)
function (formula, data, subset, weights, na.action, method = "qr", 
    model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, 
    contrasts = NULL, offset, ...)
Introduction à l'écriture de fonctions en R

Types d'arguments

  • Arguments de données : sur quoi vous calculez
  • Arguments de détail : comment vous effectuez le calcul
args(cor)
function (x, y = NULL, use = "everything", 
  method = c("pearson", "kendall", "spearman"))
Introduction à l'écriture de fonctions en R

Les arguments de données doivent précéder les détails

Ceci ne fonctionnera pas

data %>%
  lm(formula)

car l'argument de données n'est pas en premier.

Introduction à l'écriture de fonctions en R

Notre fonction revue pour la régression linéaire

run_linear_regression <- function(data, formula) {
  lm(formula, data)
}
cats %>% 
  run_linear_regression(Hwt ~ Bet + Sex)
Call:
lm(formula = formula, data = data)

Coefficients:
(Intercept)          Bwt         SexM  
    -0.4150       4.0758      -0.0821
Introduction à l'écriture de fonctions en R

Passons à la pratique !

Introduction à l'écriture de fonctions en R

Preparing Video For Download...