J'ai un peu de données similaire à celui ci-dessous (DF). Je dois ajouter une nouvelle colonne indiquant le rapport de la plus grande valeur de chaque ligne (= la plus grande valeur de la ligne divisée par la somme de toutes les valeurs de la rangée). La sortie devrait ressembler au DF1. merci! p> p>
4 Réponses :
library(tidyverse)
df %>%
rowwise() %>%
mutate(MAX = max(x,y,z, na.rm = TRUE ),
SUM = sum(x,y,z, na.rm = TRUE),
ratio = MAX / SUM)
# A tibble: 5 x 6
x y z MAX SUM ratio
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 4 5 5 10 0.5
2 4 6 3 6 13 0.462
3 1 5 2 5 8 0.625
4 4 2 3 4 9 0.444
5 1 3 2 3 6 0.5
Voici une solution utilisant dplyr code>:
Une autre option avec ou dans rowsums code> et Pmax code>
base r code> p>
solution supplémentaire
Bien que ce code puisse répondre à la question, fournissant un contexte supplémentaire concernant la raison et / ou la manière dont ce code répond à la question améliore sa valeur à long terme.