Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Calculer une moyenne pondéré en fonction de groupes
2 participants
Page 1 sur 1
Calculer une moyenne pondéré en fonction de groupes
Bonjour,
J'ai un jeu de données constitué de 3 colonnes. La première est le nom des produits, la seconde est le prix et la troisième est le nombre de produit.
Donc un jeu de données comme celui la :
Je voudrais calculer la moyenne du prix pondéré à la quantité pour chaque produit. Je voudrais passer à un tableau comme celui la:
J'ai essayer avec la fonction apply mais je n'y arrive pas.
Merci beaucoup
PS : Je précise que les chiffres des tableaux sont faux
J'ai un jeu de données constitué de 3 colonnes. La première est le nom des produits, la seconde est le prix et la troisième est le nombre de produit.
Donc un jeu de données comme celui la :
Produit | Prix | Quantité |
a | 10 | 100 |
a | 20 | 120 |
a | 10 | 50 |
b | 25 | 3 |
b | 14 | 90 |
c | 30 | 100 |
c | 25 | 58 |
c | 5 | 69 |
c | 5 | 23 |
Je voudrais calculer la moyenne du prix pondéré à la quantité pour chaque produit. Je voudrais passer à un tableau comme celui la:
a | 25 | 250 |
b | 30 | 300 |
c | 20 | 200 |
J'ai essayer avec la fonction apply mais je n'y arrive pas.
Merci beaucoup
PS : Je précise que les chiffres des tableaux sont faux
Re: Calculer une moyenne pondéré en fonction de groupes
bonjour,
Quand on travail avec des facteurs il est préférable d'utiliser des fonctions comme aggregate, tapply que apply.
Un exemple avec la librairie plyr :
Quand on travail avec des facteurs il est préférable d'utiliser des fonctions comme aggregate, tapply que apply.
Un exemple avec la librairie plyr :
- Code:
require(plyr)
tab
Produit Prix Quantité
1 a 10 100
2 a 20 120
3 a 10 50
4 b 25 3
5 b 14 90
6 c 30 100
7 c 25 58
8 c 5 69
9 c 5 23
ddply(tab, .(Produit), summarize, Mean=weighted.mean(Prix, Quantité), Quantité=sum(Quantité))
Produit Mean Quantité
1 a 14.44444 270
2 b 14.35484 93
3 c 19.64000 250
- Code:
auxi <- tapply(1:nrow(tab), tab$Produit, function(x) with(tab[x,], c(weighted.mean(Prix, Quantité), sum(Quantité))))
do.call("rbind", auxi)
[,1] [,2]
a 14.44444 270
b 14.35484 93
c 19.64000 250
droopy- Nombre de messages : 1156
Date d'inscription : 04/09/2009
Re: Calculer une moyenne pondéré en fonction de groupes
Merci beaucoup droopy, ça marche parfaitement !
Sujets similaires
» Comment calculer une corrélation? Comparer 2 groupes? URGENT
» calculer une moyenne d'écart-type
» Calculer l'évolution moyenne annuelle d'une production
» Comparaison de moyenne suivant des groupes
» GLM pondéré
» calculer une moyenne d'écart-type
» Calculer l'évolution moyenne annuelle d'une production
» Comparaison de moyenne suivant des groupes
» GLM pondéré
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum