Comment vectoriser vos fonctions dans r

Fonctions vectorisés sont une fonctionnalité très utile de R, mais les programmeurs qui sont habitués à d'autres langues ont souvent du mal avec ce concept au premier abord. UN vectorisé fonction fonctionne pas seulement sur une valeur unique, mais sur tout un vecteur de valeurs en même temps.

Votre réflexe naturel en tant que programmeur peut être en boucle sur toutes les valeurs du vecteur et d'appliquer la fonction, mais vectorisation fait que inutile. Faites-nous confiance: Lorsque vous commencez à utiliser la vectorisation en R, ça va vous aider à simplifier votre code.

Pour essayer fonctions vectorisées, vous avez à faire un vecteur. Vous faites cela en utilisant le c () fonction, ce qui signifie enchaîner. Les valeurs réelles sont séparées par des virgules.

Voici un exemple: Supposons que Granny joue au basket avec son amie Géraldine, et de vous garder un score du numéro de Granny des paniers dans chaque jeu. Après six matchs, vous voulez savoir combien de paniers Granny a fait jusqu'ici cette saison. Vous pouvez mettre ces chiffres dans un vecteur, comme ceci:

> Baskets.of.Granny lt; - c (12,4,4,6,9,3)> baskets.of.Granny [1] 12 4 4 6 9 3



Pour trouver le nombre total de paniers Granny faite, vous tapez simplement ce qui suit:

> Somme (baskets.of.Granny) [1] 38

Vous pouvez obtenir le même résultat en allant sur le numéro de vecteur par numéro, l'ajout de chaque nouveau numéro à la somme des numéros précédents, mais cette méthode auriez-vous besoin d'écrire plus de code et il faudrait plus de temps à calculer. Vous ne verrez pas sur seulement six numéros, mais la différence sera évident quand vous avez à résumer quelques milliers d'entre eux.

Dans cet exemple de vectorisation, une fonction utilise le vecteur complet pour vous donner un résultat. Certes, cet exemple est trivial (vous l'aurez deviné que sum () permettrait d'atteindre le même objectif), mais pour d'autres fonctions dans R, la vectorisation peut être moins évident.

Un exemple moins évident d'une fonction vectorisé est le coller () fonction. Si vous faites un vecteur avec les prénoms des membres de votre famille, coller () peut ajouter le nom de chacun d'eux avec une seule commande, comme dans l'exemple suivant:

> Prénoms lt; - c ("Joris", "Carolien", "Koen")> nom lt; - "Meys"> Coller (prénoms, nom) [1] "Joris Meys" "Carolien Meys" "Koen Meys"

R prend le vecteur prénoms et pâtes puis la nom de famille dans chaque valeur. À quel point cela est cool? En fait, R combine deux vecteurs. Le deuxième vecteur - dans ce cas, nom de famille - est seulement une valeur de long. Cette valeur se recyclé par le coller () fonctionner aussi longtemps que nécessaire.

Vous pouvez aussi donner R deux vecteurs plus longs, et R pourrez les combiner élément par élément, comme ceci:

> Auteurs lt; - c ("Andrie", "Joris")> lastnames lt; - c ("de Vries", "Meys")> Coller (auteurs, lastnames) [1] "Andrie de Vries" "Joris Meys"

Pas de code compliqué est nécessaire. Tout ce que vous avez à faire est de faire les vecteurs et les mettre dans la fonction.


» » » » Comment vectoriser vos fonctions dans r