J'ai les données suivantes: Je voudrais utiliser C'est le code que je dois essayer de le faire, mais cela ne fait pas tout à fait ce que je veux. p> je veux juste un total Colonne, également la valeur au total pour la première rangée doit être de 49 ans, donc je ne suis pas sûr de l'endroit où le 5 vient de. P> Merci P> P> muté code> pour créer une nouvelle colonne qui est la somme de var1 et var 2 divisé par 2 . P>
4 Réponses :
Vous pouvez vérifier la condition ensemble ensemble dans cas_quive code> sinon retourner 0 où la condition ne correspond pas.
d %>%
mutate(Total = ifelse((Region == "R1" & Area == "R123") |
(Region == "R2" & Area == "R234"), (var1 + var2) / 2, 0))
supposer que vous voulez juste appliquer l'arithmétique à toutes les lignes ...
Si vous souhaitez conserver toutes les colonnes: P>
default = 0 # define the default value for other cases d %>% transmute(Total=ifelse(Region=="R1" | Region=="R2", (var1+var2)/2, default)) -> new_d
Je ne savais pas exactement si Mrmoleje voulait maintenir cette condition
sans utiliser ou dans ifelse / case_quive code>, nous pouvons multiplier directement le vecteur logique avec le
rowmetans code> de 'var1', 'var2'
base r code> p>
D'autres ont déjà répondu à la question de savoir comment faire ce que vous voudriez, mais de répondre à la question de savoir où les 5 viennent de:
La somme est une somme de colonne, pas une somme de ligne, et lorsque vous combinez les variables à l'aide du symbole & symbole, vous obtenez des valeurs de true code> ou
false code> (dans ce cas
Vrai code>). Lorsque la somme de la colonne est calculée, il est 10 car
true code> a une valeur numérique de 1. Le 10 est ensuite divisé par 2 pour obtenir le 5. P>