J'essaie de travailler sur une trame de données que j'ai, mais j'ai du mal à trouver la dernière date associée à un nom et la somme totale associée à un nom. Mon cadre ressemble à ceciUtilisation de la boucle for pour muter un data.frame dans r
a<-
Date Name Sum
<date> <chr> <dbl>
23.02.2017 Johnny 6
24.02.2017 Jane 20
24.02.2017 Micky Mouse 20
27.02.2017 Jane 20
3.03.2017 Johnny 20
3.03.2017 Ronald 25
Je voudrais obtenir quelque chose comme ça
b<-
Latest Date Name Frequency Total Sum
<date> <chr> <dbl> <dbl>
3.03.2017 Johnny 2 26
27.02.2017 Jane 2 40
24.02.2017 Micky Mouse 1 20
3.03.2017 Ronald 1 25
I Started en utilisant la fonction de table, puis en utilisant une boucle, mais je suis un peu Noob.
b <- data.frame(table(a$Name))
# after cleaning
b<-
Name Frequency
<chr> <int>
Johnny 2
Jane 2
Micky Mouse 1
Ronald 1
for (i in (a$Name)) {
b <- a %>%
mutate(Total Sum = sum(a$Sum[a$Name == i] %>%
mutate(Latest Date = max(a$date[a$Name == i]))
}
Cela me renvoie une trame de données qui ressemble à ceci
b<-
Name Frequency Total Sum Latest Date
<chr> <int> <dbl> <date>
Johnny 2 40 27.02.2017
Jane 2 40 27.02.2017
Micky Mouse 1 40 27.02.2017
Ronald 1 40 27.02.2017
Comment puis-je faire en sorte que la somme totale est seulement celle de Johnny, Jane ... et que la date est la dernière date associée à ce nom
'(dplyr); df%>% group_by (Nom)%>% summarize (Total_Sum = somme (Somme), Latest_Date = max (Date)) 'devrait fonctionner. – Axeman
Aussi [voir ici] (https://stackoverflow.com/questions/1660124/how-to-sum-a-variable-by-group). – Axeman
belle. Je vous remercie! –