Vidéo: France : le recyclage du plastique, c’est pas fantastique ! 2025
Chaque fois, vous combinez un vecteur avec plusieurs valeurs et un avec une seule valeur dans une fonction. R applique la fonction, en utilisant cette seule valeur pour chaque valeur du vecteur. Mais le recyclage va bien au-delà de ces exemples.
Chaque fois que vous donnez deux vecteurs de longueur inégale à une fonction de recyclage, R répète le vecteur le plus court aussi souvent que nécessaire pour exécuter la tâche que vous lui avez demandé d'exécuter.
Supposons que vous divisiez le nombre de paniers créés par Granny en deux-pointeurs et trois-pointeurs: >> Granny. pointeurs <- c (10, 2, 4, 0, 4, 1, 4, 2, 7, 2, 1, 2)
Vous arrangez les nombres de sorte que pour chaque partie, d'abord le nombre de deux -pointers est donné, suivi du nombre de trois-pointeurs.
Maintenant, Granny veut savoir combien de points elle a vraiment marqué cette saison. Vous pouvez le calculer facilement avec l'aide du recyclage:
Vous avez fait un vecteur avec le nombre de points pour chaque panier:
c (2, 3)
-
Vous avez dit à R de multiplier ce vecteur par le vecteur Granny. pointeurs
.
-
R multiplie le premier nombre dans Mémé. pointeurs par 2, le second par 3, le troisième par 2 à nouveau, et ainsi de suite. Vous mettez le résultat dans les points variables.
-
Vous avez additionné tous les nombres en points pour obtenir le nombre total de points marqués.
En fait, vous pouvez simplement omettre l'étape 3. L'imbrication des fonctions vous permet de le faire en une ligne de code: >> sum (Granny.pointers * c (2, 3)) -
Recyclage peut être un peu difficile. Si la longueur du vecteur le plus long n'est pas exactement un multiple de la longueur du vecteur le plus court, vous pouvez obtenir des résultats inattendus.
Maintenant, Granny veut savoir à quel point elle a amélioré chaque match. Étant paresseux, vous avez un plan astucieux. Avec diff (), vous calculez combien de paniers plus ou moins faits par Granny que dans le jeu précédent. Ensuite, vous utilisez la division vectorisée pour diviser ces différences par le nombre de paniers dans le jeu. Pour couronner le tout, vous multipliez par 100 et arrondissez le vecteur entier. Tous ces calculs prennent une ligne de code: >> ronde (diff (paniers de.Mamie) / paniers de.Mamie * 100) 1er 2e 3e 4e 5e 6e -67 25 20 50 -67 -267
Cette dernière valeur ne semble pas correcte, car il est impossible de marquer plus de 100% de paniers en moins. R ne vous donne pas juste ce résultat bizarre; il vous avertit également que la longueur de diff (paniers de Granny) ne correspond pas à la longueur des paniers. de. Mamie:
Message d'avertissement: Dans diff (paniers de.Mamie) / paniers.de. Mémé: la longueur de l'objet n'est pas un multiple de longueur d'objet plus courte
Les paniers de vecteurs. de. La grand-mère a six valeurs, mais le résultat de diff (paniers de Granny) n'est que de cinq valeurs. Donc, la diminution de 267 p. 100 est, en fait, la dernière valeur des paniers. de. Mamie divisée par la première valeur de diff (paniers de Mamie). Dans cet exemple, le vecteur le plus court, diff (paniers de Granny), est recyclé par l'opérateur de division.
Ce résultat n'était pas ce que vous vouliez. Pour éviter ce résultat, vous devez utiliser uniquement les cinq premières valeurs de paniers. de. Granny, donc la longueur des deux vecteurs correspond: >> ronde (diff (paniers de Granny) / paniers de Granny [1: 5] * 100) 2ème 3ème 4ème 5ème 6ème -67 25 20 50 -67
Et tout ce qui est la vectorisation.
