Comment faire une boucle par les valeurs de r

Parfois, quand faire des choix en utilisant R, vous pouvez utiliser une seule valeur de baser votre choix sur. Vous pouvez appliquer ce code sur chaque valeur que vous avez à la main, mais il est beaucoup plus logique pour automatiser cette tâche.

Sommaire

  • Construire un pour boucle
  • Calculer les valeurs dans un pour boucle

Construire un pour boucle

Comme dans de nombreux autres langages de programmation, vous répétez une action pour chaque valeur dans un vecteur en utilisant un pour boucle. Vous construisez une pour boucle dans R comme suit:

for (i in valeurs) {... faire quelque chose ...}

Ce pour boucle comprend les parties suivantes:

  • Le mot-clé pour, suivie par des parenthèses.

  • Un identificateur entre les parenthèses. Dans cet exemple, nous utilisons je, mais cela peut être n'importe quel nom de l'objet que vous aimez.




  • Le mot-clé dans, qui suit l'identifiant.

  • Un vecteur avec les valeurs à boucle sur. Dans ce code d'exemple, nous utilisons l'objet valeurs, mais ce nouveau peut être tout vecteur dont vous disposez.

  • Un bloc de code entre accolades qui doit être effectuée pour chaque valeur dans l'objet valeurs.

Dans le bloc de code, vous pouvez utiliser l'identifiant. Chaque fois R parcourt le code, R attribue la valeur suivante dans le vecteur avec les valeurs de l'identifiant.

Calculer les valeurs dans un pour boucle

Prenons un autre regard sur le priceCalculator () fonction. Plus tôt, nous vous montrons quelques possibilités d'adapter cette fonction de sorte que vous pouvez appliquer un taux de TVA différents pour les clients publics, privés et étrangers. Vous ne pouvez pas utiliser une de ces options d'une manière vectorisée, mais vous pouvez utiliser un pour boucle de sorte que la fonction peut calculer le prix pour plusieurs clients à la fois.

Utilisez les valeurs du vecteur

Adapter le priceCalculator () fonction comme suit:

priceCalculator lt; - fonction (heures, PPH = 40, client) {net.price lt; - heures * * PPH IfElse (heures> 100, 0,9, 1) la TVA lt; - numérique (0) for (i in client) {TVA lt; - c (TVA, interrupteur (i, privé = 1.12, publique = 1,06, 1))} tot.price lt; - net.price * VATround (tot.price)}

La première et la dernière partie de la fonction ont pas changé, mais dans la section du milieu, vous procédez comme suit:

  1. Créer un vecteur numérique de longueur 0 et appeler TVA.

  2. Pour chaque valeur dans le client de vecteur, appliquer commutateur () pour sélectionner le montant correct de la TVA à payer.

  3. A chaque tour de la boucle, ajouter le résultat de commutateur () à la fin du vecteur TVA.

Le résultat est un vecteur TVA qui contient, pour chaque client, la TVA correcte qui doit être appliqué. Vous pouvez tester cela en ajoutant, par exemple, une variable type aux clients de trame de données que vous avez créé dans la section précédente comme ceci:

> Clients Type de $ lt; - c («public», «étranger», «privé», «à l'étranger»)> priceCalculator (clients $ heures, client = clients Type $) [1] 1 060 3960 1 600 5040

» » » » Comment faire une boucle par les valeurs de r