• Menu
    • Nos Formations
    • Nos Prestations
    • Les Astuces
Skip to content
Astuces et scripts R
Astuces et scripts R
Primary Navigation Menu
Menu
  • Abcd’R
  • Tous les scripts
    • Voir les articles
    • Proposer un Article
  • Formation au logiciel R
  • Contact

Les dates de formations à R, éligibles au CPF sont en lignes !

Voir nos formations

Utiliser les closures dans les fonctions

Par vincent
Le janvier 8, 2025
Dans fonctions avancées
Tagged closures, fonction
Avec 0 Commentaire

Utiliser les closures dans les fonctions en R

Les closures sont un concept fondamental en programmation, et R les utilise de manière efficace. Une closure est une fonction qui capture l’environnement dans lequel elle a été créée, ce qui signifie qu’elle peut accéder aux variables définies dans cet environnement même après que celui-ci ait été quitté. Cela permet de créer des fonctions qui se souviennent de leur état.

Pourquoi utiliser des closures ?

Les closures sont utiles pour plusieurs raisons :

  1. Encapsulation : Elles permettent de cacher des variables et des états internes, rendant le code plus propre et plus sûr.
  2. Fonctions génératrices : Elles permettent de créer des fonctions qui peuvent être configurées avec des paramètres spécifiques.
  3. Mémorisation : Elles peuvent être utilisées pour stocker des résultats de calculs coûteux.

Exemple concret

Imaginons que nous souhaitons créer une fonction qui génère des multiplicateurs. Nous allons créer une fonction create_multiplier qui retourne une nouvelle fonction capable de multiplier un nombre par un facteur donné.

Voici comment cela fonctionne en R :

create_multiplier <- function(factor) {
  # La fonction interne qui utilise 'factor'
  multiplier <- function(x) {
    return(x * factor)
  }
  return(multiplier)
}

# Créons un multiplicateur par 2
double <- create_multiplier(2)

# Testons notre fonction
result1 <- double(5)  # 5 * 2 = 10
result2 <- double(10) # 10 * 2 = 20

# Affichons les résultats
print(result1) # Affiche 10
print(result2) # Affiche 20

Explication du code

  1. Définition de la fonction create_multiplier : Cette fonction prend un argument factor qui sera utilisé dans la fonction interne.
  2. Fonction interne multiplier : Cette fonction prend un argument x et retourne le produit de x et factor. Notez que factor est accessible ici grâce à la closure.
  3. Retour de la fonction interne : create_multiplier retourne la fonction multiplier, qui se souvient de la valeur de factor même après que create_multiplier ait terminé son exécution.
  4. Utilisation de la closure : Nous créons un multiplicateur par 2 et l’utilisons pour multiplier différents nombres.

Conclusion

Les closures en R offrent une manière puissante et flexible de gérer l’état et de créer des fonctions personnalisées. Elles permettent d’encapsuler des variables et de créer des fonctions qui se souviennent de leur environnement, ce qui est particulièrement utile dans de nombreux scénarios de programmation. En comprenant et en utilisant les closures, vous pouvez écrire un code plus propre et plus efficace.

2025-01-08
Article précédent: Utiliser la fonction apply pour des calculs sur des matrices
Article suivant: Utiliser purrr::map pour appliquer des fonctions à des listes

Formation et consultance

Trouvez votre formation R sur-mesure chez ThinkR

-- Contactez-nous --

Catégories

Commentaires récents

  • Sébastien dans Comment effectuer des calculs de somme et de moyenne sur les colonnes ou les lignes d’une matrice ? colSums, rowSums, colMeans, rowMeans
  • Achraf Mazouz dans Comment effectuer des calculs de somme et de moyenne sur les colonnes ou les lignes d’une matrice ? colSums, rowSums, colMeans, rowMeans
  • Lou Sayd dans Coment alculer simplement la SEM dans R ? (Erreur Standard)
  • Nicolas dans Comment remplacer une chaîne de caractères ? string_replace_all(df, "pattern","replacement")
  • Vincent dans Comment comparer deux moyennes avec R grâce au test de Student ? t.test

Archives

Plan

  • Abcd’R
  • Tous les scripts
    • Proposer un Article
  • Ressources documentaires
    • Le logiciel R
    • Liste des interfaces graphiques
  • Formation au logiciel R
  • Contact
  • Politique de confidentialité

Flux ThinkR – Certification & Formation langage R

  • Déboguer une fonction avec debugonce() ou browser()
  • Dessinez pour gagner : L’impact des maquettes sur vos apps Shiny
  • Gérer et manipuler des dates en 2024 : une année pas comme les autres !
  • Retour vers le turfu : R, le web, et webR
  • Créer un package R et le versionner avec VSCode ? Mission possible !

Méta

  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR

ABCD'R (par ThinkR ) © 2025 - Confidentialité