Tutoriel R : Écriture de fonctions et gestions des erreurs

Accueil R et Rstudio Tutoriel R : Écriture de fonctions et gestions des erreurs

R n’est pas seulement un langage pour faire de l’analyse de données, il est aussi très puissant pour la programmation.

Ce chapitre va vous introduire à la création de fonctions personnalisées, à la gestion des erreurs dans votre code, et à l’utilisation et la création de packages pour étendre les fonctionnalités de R.

Écriture de fonctions

Les fonctions sont des blocs de code que vous pouvez réutiliser dans plusieurs parties de votre programme. Elles vous permettent de rendre votre code plus organisé, facile à lire et à maintenir.

Exemple de base : Création d’une fonction

Imaginons que vous avez besoin de calculer la surface d’un rectangle plusieurs fois dans votre programme. Plutôt que de réécrire le calcul à chaque fois, vous pouvez créer une fonction pour cela :


# Définir une fonction pour calculer la surface d'un rectangle
surface_rectangle <- function(longueur, largeur) {
  surface <- longueur * largeur
  return(surface)  # La fonction renvoie la surface
}

# Utiliser la fonction
resultat <- surface_rectangle(5, 3)
print(paste("La surface du rectangle est :", resultat))

Explication

  • function(longueur, largeur) : Cela définit une fonction avec deux paramètres : longueur et largeur.
  • return(surface) : La fonction retourne le résultat calculé, ici la surface.
  • Appel de la fonction : Nous utilisons surface_rectangle(5, 3) pour calculer la surface d’un rectangle de longueur 5 et de largeur 3.

Résultat de l'exécution :

La surface du rectangle est : 15

Exemple avancé : Fonction avec condition

Nous pouvons aussi inclure des conditions dans nos fonctions pour rendre le code plus robuste. Par exemple, nous ne voulons pas que la surface soit calculée si les dimensions sont négatives :

surface_rectangle <- function(longueur, largeur) {
  if (longueur <= 0 | largeur <= 0) {
    return("Les dimensions doivent être positives.")
  } else {
    surface <- longueur * largeur
    return(surface)
  }
}

# Exemple avec une valeur négative
resultat <- surface_rectangle(5, -3)
print(resultat)  # Affiche un message d'erreur

Gestion des erreurs

En programmation, il est important de gérer correctement les erreurs pour éviter que votre programme ne s'arrête brusquement ou renvoie des résultats inattendus. R fournit des moyens pour capturer et gérer les erreurs.

Exemple : Utiliser tryCatch

L'instruction tryCatch est utilisée pour gérer les erreurs et spécifier ce que le programme doit faire si une erreur survient.

# Fonction qui divise deux nombres
division <- function(x, y) {
  resultat <- tryCatch({
    # Tentative de division
    x / y
  }, warning = function(w) {
    print("Il y a un avertissement.")
  }, error = function(e) {
    print("Erreur : Division par zéro non permise.")
  }, finally = {
    print("Tentative de division terminée.")
  })
  
  return(resultat)
}

# Exemple avec division par zéro
resultat <- division(10, 0)
print(resultat)

Explication

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore...

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?
  • tryCatch : Capture les erreurs et permet de définir des actions spécifiques à prendre en cas d'erreur ou d'avertissement.
  • error : Cette partie du code s'exécute si une erreur survient (par exemple, division par zéro).

Résultat de l'exécution :

Erreur : Division par zéro non permise.
Tentative de division terminée.

Packages et bibliothèques

Les packages sont des collections de fonctions, de données et de code R qui peuvent être installées et utilisées pour étendre les fonctionnalités de base de R. Il existe des milliers de packages disponibles sur CRAN (Comprehensive R Archive Network) pour pratiquement tous les besoins.

Installation et utilisation d’un package

Pour installer et utiliser un package, vous pouvez utiliser la fonction install.packages suivie de library pour le charger dans votre environnement R.

Exemple : Installation et utilisation du package ggplot2

ggplot2 est un package populaire pour la visualisation de données.

# Installer ggplot2 (à faire une seule fois)
install.packages("ggplot2")

# Charger ggplot2
library(ggplot2)

# Exemple simple : créer un graphique à partir de données
donnees <- data.frame(x = c(1, 2, 3, 4), y = c(10, 15, 13, 17))
ggplot(data = donnees, aes(x = x, y = y)) + geom_point()

Création de votre propre package

Vous pouvez également créer vos propres packages si vous développez des fonctions ou des outils que vous souhaitez partager ou réutiliser dans différents projets.

Étapes pour créer un package

  • Créer la structure du package : Utilisez la fonction usethis::create_package pour créer la structure du package.
usethis::create_package("chemin/vers/votre/package")
  • Ajouter des fonctions : Placez vos fonctions dans le dossier R/ du package.
  • Documenter les fonctions : Utilisez roxygen2 pour ajouter de la documentation à vos fonctions.
  • Tester et compiler : Utilisez la fonction devtools::check() pour vérifier que votre package fonctionne correctement.

Dans ce chapitre, nous avons exploré :

  • Comment créer des fonctions personnalisées pour rendre votre code plus modulaire et réutilisable.
  • Comment utiliser tryCatch pour gérer les erreurs dans votre code.
  • Comment installer et utiliser des packages pour étendre les fonctionnalités de R.

Ces outils sont essentiels pour devenir un programmeur efficace en R et vous permettront de créer des analyses et des solutions de plus en plus sophistiquées. N’hésitez pas à expérimenter et à créer vos propres fonctions et packages pour mieux comprendre ces concepts !

Chapitre 10 : Application avancée et apprentissage automatique en R →

Live on Twitch
  • 🔥 Vendredi 25 Avril 2025 >19h00

    HTML & SémantiqueStructure d'une page HTML