• 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

Vectoriser des opérations pour améliorer la performance

Par vincent
Le janvier 23, 2025
Dans vectorisation
Tagged performance, vectorisation
Avec 0 Commentaire

Vectoriser des opérations pour améliorer la performance en R

La vectorisation est une technique essentielle en R qui permet d’améliorer la performance des opérations sur des données. Contrairement aux boucles, qui traitent les éléments un par un, la vectorisation permet d’appliquer des opérations sur des vecteurs entiers, ce qui est généralement beaucoup plus rapide et efficace.

Pourquoi vectoriser ?

  1. Performance : Les opérations vectorisées sont souvent optimisées en C, ce qui les rend plus rapides que les boucles en R.
  2. Lisibilité : Le code vectorisé est généralement plus concis et plus facile à lire.
  3. Simplicité : La vectorisation réduit le risque d’erreurs en éliminant la nécessité de gérer manuellement les indices.

Exemple concret

Imaginons que nous souhaitons calculer le carré de chaque élément d’un vecteur. Voici comment nous pourrions le faire en utilisant une boucle et ensuite en utilisant une approche vectorisée.

Avec une boucle

# Création d'un vecteur
vec <- 1:10
# Initialisation d'un vecteur pour stocker les résultats
result <- numeric(length(vec))

# Boucle pour calculer le carré
for (i in 1:length(vec)) {
  result[i] <- vec[i]^2
}

print(result)

Avec une opération vectorisée

# Création d'un vecteur
vec <- 1:10

# Calcul du carré de manière vectorisée
result_vectorized <- vec^2

print(result_vectorized)

Comparaison des deux approches

Dans l’exemple ci-dessus, la première méthode utilise une boucle for pour itérer sur chaque élément du vecteur, ce qui peut être lent pour de grands vecteurs. La seconde méthode applique l’opération ^2 directement sur le vecteur entier, ce qui est beaucoup plus rapide.

Mesurer la performance

Nous pouvons également mesurer le temps d’exécution des deux méthodes pour voir la différence de performance.

# Mesurer le temps de la boucle
system.time({
  result <- numeric(length(vec))
  for (i in 1:length(vec)) {
    result[i] <- vec[i]^2
  }
})

# Mesurer le temps de la vectorisation
system.time({
  result_vectorized <- vec^2
})

Conclusion

La vectorisation est une technique puissante en R qui peut considérablement améliorer la performance de votre code. En évitant les boucles et en utilisant des opérations sur des vecteurs, vous pouvez non seulement rendre votre code plus rapide, mais aussi plus lisible et plus simple. N’hésitez pas à appliquer cette technique dans vos projets pour tirer parti de la puissance de R !

2025-01-23
Article précédent: Validation croisée d’un modèle avec caret
Article suivant: Visualiser des distributions avec des histogrammes dans ggplot2

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é