rep() dans R : décodage de la fonction de réplication
Publié: 2020-06-15Avant de parler de rep dans R , nous devons savoir ce qu'est l'itération. Le terme itération signifie répétition. Comme dans la plupart des autres langages de programmation, la boucle ou l'itération traditionnelle est un aspect essentiel de R.
Bien que les boucles régulières constituent une approche efficace de la gestion des données, elles sont coûteuses pour la seule raison que l'itération est gourmande en mémoire et en temps. Une bonne alternative est l'utilisation de méthodes vectorisées qui peuvent atteindre les mêmes objectifs que l'itération ; la fonction rep() est membre d'une telle fonction de bouclage vectorisée.
Table des matières
Qu'est-ce que la fonction rep() ?
En termes simples, rep dans R , ou la fonction rep() réplique des valeurs numériques, ou du texte, ou les valeurs d'un vecteur pour un nombre de fois spécifique. La fonction rep() fait partie de la famille de fonctions apply() du package de base R. La famille apply() contient des fonctions utilisées pour manipuler des données à partir de tableaux, de matrices, de blocs de données et de listes de manière répétitive.
Les fonctions apply() évitent l'utilisation de constructions de boucle pour agir sur des tableaux, des matrices ou des listes d'entrée et appliquent une fonction nommée avec des arguments facultatifs. La fonction appelée peut être une fonction d'agrégation, une fonction de transformation ou des fonctions vectorisées telles que des tableaux, des vecteurs, des listes et des matrices. Consultez nos cours de science des données pour en savoir plus sur les fonctions.
Lire la suite : Data Frames en Python : Tutoriel approfondi sur Python
Calculs vectorisés versus itérations
Au lieu d'opérer sur des éléments individuels d'une séquence, les méthodes vectorisées fonctionnent sur toutes les composantes vectorielles simultanément. Ainsi, les calculs vectorisés obtiennent toujours des résultats plus rapides.
Pour illustrer la rapidité des calculs vectorisés, nous utiliserons un exemple qui détermine le temps écoulé d'une boucle for() pour la génération d'un grand vecteur. Dans l'exemple, chaque élément est calculé séquentiellement comme la somme cumulée incrémentielle de 1 à N (où N = 10 000 000). Une comparaison est établie entre l'itération de la boucle for() et la fonction vectorisée via des tests de vitesse.
La source
En comparant les résultats des tests de vitesse, il est clair que le temps écoulé pour le calcul vectorisé (test de vitesse 2) est nettement plus rapide que la boucle for(). Dans le temps d'un passage de la boucle itérative, le calcul vectorisé peut être répété 278 fois.
Fonction Répéter ou Répliquer
La fonction ou la boucle Répéter dans R est utilisée lorsque nous voulons exécuter le même bloc de code à plusieurs reprises jusqu'à ce qu'une condition spécifique soit remplie. Il est très similaire aux boucles for et while qui exécutent à plusieurs reprises un bloc de commande jusqu'à la rupture. La syntaxe de base pour créer une boucle de répétition est :
répéter {
si (état) {
Pause
}
}
L'exemple suivant clarifiera l'utilisation de la fonction Répéter :
Dans l'exemple ci-dessus, la boucle de répétition résume la valeur jusqu'à ce qu'elle atteigne 6. Une fois que la boucle a atteint 6, la boucle se casse en affichant "la boucle de répétition se termine".
D'autre part, la fonction de réplication ou rep dans R, est utilisée pour répliquer les valeurs. La syntaxe R de base pour utiliser la fonction rep() est :
- rep(valeur,nombre_de_fois)
- rep(séquence,chaque,nombre_de_fois)
Voici quelques exemples pour comprendre la fonction rep() :
Exemple : Utilisation de la fonction rep() pour répliquer des valeurs un certain nombre de fois
Dans l'exemple ci-dessus, la valeur 2 est reproduite dix fois.

Exemple : Utilisation de la fonction rep() avec un attribut de longueur
Dans l'exemple ci-dessus, 1 à 4 sont imprimés en séquence jusqu'à ce que le nombre d'éléments atteigne 20.
Exemple : Utilisation de la fonction rep() pour répliquer une liste
Dans l'exemple ci-dessus, la liste de notation de 1 à 5 a été répliquée trois fois.
La source
Utiliser la fonction rep() pour développer un vecteur
La fonction rep() est un moyen flexible de répéter un vecteur. Voici quelques exemples supplémentaires :
Au cas où nous aurions besoin de développer un vecteur statistique d'unités expérimentales/observationnelles en un vecteur d'une base de données avec des observations répétées des unités, chaque argument est très pratique. Exemple:
Une autre caractéristique de rep() est qu'un vecteur peut se développer en un panneau déséquilibré en remplaçant l'argument de longueur par un vecteur qui spécifie le nombre de fois que chaque élément du vecteur se répétera. Exemple:
Les versions plus simples et plus rapides de la fonction rep incluent rep_len() et rep.int(). Ces nouvelles versions sont livrées sans certains des attributs de rep() mais s'avèrent utiles dans les cas où la vitesse est primordiale et où des aspects supplémentaires du vecteur répété ne sont pas souhaités.
La source
Lis: 6 idées de projets R intéressantes pour les débutants
Conclusion
Dans cet article, nous avons discuté des fonctions Répéter et Répliquer avec des exemples appropriés. Alors que les itérations traditionnelles sont utiles pour l'exécution répétée de blocs de code, le rep dans R est idéal pour répliquer les valeurs d'un vecteur ou d'une liste. Efficace et rapide, la fonction rep() a simplifié la réplication vectorielle !
Si vous êtes curieux d'en savoir plus sur R, la science des données, consultez le programme Executive PG en science des données de IIIT-B & upGrad qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, du mentorat avec des experts de l'industrie , 1-on-1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.
Comment puis-je créer un vecteur avec des valeurs répétées dans R ?
La fonction rep() dans R peut être utilisée pour répéter une série d'entiers. Dans R, il existe deux techniques pour créer un vecteur avec des valeurs répétées ; la première méthode répète chaque élément du vecteur, tandis que la seconde méthode répète les éléments un nombre de fois donné. Les vecteurs sont créés à l'aide de la fonction rep dans chacune de ces approches. Par exemple, rep(1:5, times=5) donne un vecteur avec la séquence 1 à 5 répétée 5 fois.
Quelle fonction est la plus rapide - Répliquer ou Boucle ?
Dans le langage de programmation R, la fonction de boucle For est plus rapide que la fonction de réplication. Une boucle for est une technique pour boucler sur une liste de valeurs dans divers langages de programmation en exécutant du code pour chaque valeur de la liste. rep() est une fonction de bouclage vectorisée dont le seul but est de s'exécuter sans gaspiller de mémoire. Lorsque vous devez modifier une partie d'un bloc de données existant, une boucle For est généralement la meilleure option.
Comment puis-je accélérer les codes R ?
Certaines méthodes pour accélérer les codes R sont répertoriées ci-dessous : -
1. Avant de placer vos structures de données et vos variables de sortie dans une boucle pour les calculs, assurez-vous qu'elles ont la bonne longueur et le bon type de données. À l'intérieur de la boucle, essayez de ne pas augmenter progressivement la quantité de données.
2. Lorsque cela est possible, utilisez une matrice au lieu d'un bloc de données, car les blocs de données peuvent créer des problèmes dans de nombreuses situations. Par conséquent, n'utilisez les trames de données que lorsque c'est absolument essentiel.
3. Dans la mesure du possible, utilisez des opérations vectorielles et matricielles.
4. Dans R, ne modifiez pas le type ou la taille d'un objet. La modification du type et de la taille d'un objet R entraîne une réallocation de l'espace mémoire, ce qui est inadéquat par défaut.