Pardon pour le titre un peu confus. Je m'explique.
Mon code est le suivant :
Code : Tout sélectionner
> a=c(1,2,3,4,5,6,7)
> b=c("A","A","A","B","B","B","C")
> c=c(1,3,0,1,2,2,3)
> df=cbind(a,b,c)
> df
a b c
[1,] "1" "A" "1"
[2,] "2" "A" "3"
[3,] "3" "A" "0"
[4,] "4" "B" "1"
[5,] "5" "B" "2"
[6,] "6" "B" "2"
[7,] "7" "C" "3"
J'aimerais créer une 4 colonne qui calcule automatiquement la somme sur c par groupes, où les groupes seraient donnés par b. En clair, cette colonne aurait comme tête : 4, 5, 3.
Je sais que je pourrais utiliser aggregate qui me créerait un nouveau dataframe et que je pourrais ensuite fusionner ce nouveau dataframe avec df pour obtenir cette colonne, mais serait-il possible de le faire en une ligne de code, sans passer par un nouveau dataframe ? merci d'avance