J'ai un petit problème d'affichage des résultats d'une boucle for !!
Un petit aperçu sur mes données : Ma base contient 4 codes et chacun d'eux est étalé sur 366 jours donc au total j'ai 1464 lignes !!! en plus des codes et des dates !!! j'ai deux colonnes une des prix et l'autre des quantités !!
Code : Tout sélectionner
> str(tabsum)
'data.frame': 1464 obs. of 5 variables:
$ CodeFam: Factor w/ 4 levels "350","360","380",..: 1 1 1 1 1 1 1 1 1 1 ...
$ DateT : Factor w/ 366 levels "2015-10-01","2015-10-02",..: 1 2 3 4 5 6 7 8 9 10 ...
$ Qte : int 15 12 9 7 9 11 16 23 12 23 ...
$ PrixDev: int 10220 8800 5160 4235 3575 6540 11690 12015 6805 16897 ...
$ Prix : num 681 733 573 605 397 595 731 522 567 735 ...
>
Donc en partant de ce code, je voulais calculer la moyenne des quantités et des prix sur 28 jours glissants pour chaque code !!!! jusqu'à mtn tout va bien !! mais le problème se situe dans la matrice "rslt" !! vu qu'à la fin ça me fait sortir pour chaque code les moyennes du dernier code !!!
alors que moi j'ai envie qu'il me sorte pour chaque code les moyennes qui lui correspond !!
Code : Tout sélectionner
MQ <- NULL
MP <- NULL
rslt <- NULL
for(cf in unique(tabsum[,1])){
quanti <- tabsum[tabsum[,1]==cf , 3]
price <- tabsum[tabsum[,1]==cf , 5]
for (i in (29:length(price)) ) {
Qt <- quanti[(i-28):(i-1)]
Px <- price[(i-28):(i-1)]
MQ[(i):(i)] <- round(mean(Qt),2)
MP[(i):(i)] <- round(mean(Px),2)
}
rslt <- cbind(tabsum$CodeFam, tabsum$DateT, tabsum$Qte, tabsum$PrixDev, tabsum$Prix, MP ,MQ)
rslt <- as.data.frame(rslt)
}
D'avance merciiiiiii.
SI vous avez besoin d'autres infos je suis là :)