0
votes

Multiplication, multiplicateur différent par niveau

Je suis coincé avec ce problème

Je veux multiplier mes données, mais chaque proportion de chaque observation pour un pourcentage différent. A l'exemple: si la première observation de mon Var_1 a 5000 valeur. Je tiens à multiplier la proportion entre 100 et 1000 sur 2% (dans ce cas particulier 900 x 2%). La proportion entre 1000 et 2000 de 3% (dans ce cas 1000 x 3%). Et la proportion> 2000 de 5% (dans ce cas 3000 x 5%).

et ajouter la somme de ce processus pour chaque observation dans une nouvelle variable. Toute idée de comment procéder?

J'ai ces données comme exemple:

bibliothèque (Tairyverse) my_data <- Tibble (var_1 = C (5000, 1500, 350, 1200, 750, 1000, 1250, 2500))

r

1 commentaires

Pouvez-vous s'il vous plaît vérifier ma solution


3 Réponses :


0
votes

Nous pouvons utiliser cas_quive xxx


0 commentaires

0
votes

Vous n'avez pas besoin de charger un package uniquement pour cette opération. Vous pouvez utiliser la fonction de sous-ensemble (...) de la base R. Il peut être tentant d'écrire une déclaration Ifelse et qui fonctionnerait probablement, mais r excelle lorsque vous utilisez des opérations vectorisées plutôt que des boucles. xxx


3 commentaires

Je pense que cette façon ne fonctionne pas. Par exemple, pour ma première observation 5000, la sortie doit être: 900 * 2% + 1000 * 3% + 2000 * 5% = 148


Pouvez-vous reformuler votre question? Voulez-vous multiplier des sous-ensembles de 5000 par pourcentages et résumer le total? Je ne suis pas sûr de votre objectif.


Imaginez que j'ai cette variable C (5000, 2500, 1200), je souhaite multiplier chaque proportion de chaque numéro pour un pourcentage différent. Les pourcentages sont: 2% pour la partie du nombre compris entre 100 et 1000. 3% pour la partie du nombre compris entre 1000 et 2000. 4% pour la partie du nombre supérieur à 2000. Dans ce cas pour: a) 5000 3000 * 4% + 1000 * 3% + 900 * 2% = 168 b) 2500 500 * 4% + 1000 * 3% + 900 * 2% = 68 b) 1200 0 * 4% + 200 * 3% + 900 * 2% = 24 Et je cherche un moyen de le faire pour une variable avec 20.000 numéros



0
votes

Voici une manière plus générique: xxx


0 commentaires