Vous n'êtes pas identifié.
Bienvenue sur le site support de mes ouvrages d'introduction à SAS
La 4ème édition de mon ouvrage est toujours disponible !
Bonjour
Dans l'édition 3 de mon ouvrage, je présente page 180 un programme qui va calculer des moyennes glissantes mais il est un peu particulier : les données sont journalières et il suffit, pour calculer une moyenne glissante sur 5 jours de faire la somme des cinq dernières observations puis de diviser par 5...
Bon... dans la vraie vie, les choses peuvent être un peu plus compliquées et pour nous en rendre compte, nous allons imaginez le cas suivant (inspiré d'un cas réel.. merci à Juliette qui m'a contacté pour me faire part d'un problème très similaire à celui que je vous expose aujourd'hui pour ce sujet des beaux mercredis !)
Soit une entreprise qui dispose de trois sites et qui doit effectuer des interventions de maintenance à des intervalles non réguliers. On dispose d'une table dans laquelle on a une variable SITE (1, 2, 3), une date d'intervention (DATE) et une durée d'intervention (TEMPS). Voici un extrait de cette table :
Obs. site date temps 1 1 02/03/2016 11 2 1 02/03/2016 26 3 1 05/03/2016 11 4 1 08/03/2016 20 5 1 10/03/2016 24 6 1 12/03/2016 24 7 1 13/03/2016 8 8 1 14/03/2016 25 9 1 15/03/2016 25 10 1 15/03/2016 30 11 1 17/03/2016 23 12 1 18/03/2016 18 13 1 18/03/2016 22
Votre objectif sera de créer deux nouvelles variables :
1- la première variable vous indiquera, pour chaque observation, le nombre d'interventions observées au cours des 10 derniers jours sur le site
2- la second variable vous indiquera, pour chaque observation, la durée moyenne des interventions observées au cours des 10 derniers jours sur le site.
En ce qui concerne l'intervention observée le 18/03/2016, il y a eu 9 interventions au cours des 10 derniers jours (observations n°4 jusqu'à l'observation n°13, entre le 8 mars et le 18 mars) sur le site n°1 - ces interventions ont eu une durée moyenne de 21.9 minutes.
Vous modifierez ensuite votre programme pour que votre première variable indique le nombre d'interventions observées au cours des 10 derniers jours en excluant la dernière intervention (facile !). Le temps moyen d'intervention devra lui aussi exclure la durée de la dernière intervention (moins facile....).
le programme suivant crée la table que vous devez mobiliser pour cet exercice :
data test(drop=obs) ; do site=1 to 3; do obs=1 to 25+round(ranuni(123)*25); date='01mar2016'd+round(ranuni(234)*61); temps=5+round(ranuni(345)*25); output; end; end; run; proc sort data=test; by site date; run;
Amusez vous bien...
Ce sujet est maintenant archivé - seuls les utilisateurs inscrits de www.sas-sr.com peuvent consulter l'intégralité du sujet et les réponses aux questions posées.
pour vous identifier, suivez ce lien
pour vous inscrire, suivez ce lien
Hors ligne