IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS STAT Discussion :

Moyenne de variable avec condition d'une deuxième variable


Sujet :

SAS STAT

  1. #1
    Membre à l'essai
    Femme Profil pro
    apprentie développeur
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Anguilla

    Informations professionnelles :
    Activité : apprentie développeur
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Moyenne de variable avec condition d'une deuxième variable
    Bonjour,

    J'ai un premier dataset avec les variables "annee" et "mol":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Data test ;
    Input annee mol ;
    Datalines;
    2006   234.3
    2007   345.1
    2008   425.8
    2009   349.8
    2010   234.6
    2011   364.7
    2012   129.8
    2013  324.6;
    Run ;
    Un deuxime dataset:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data tutu;
    Input id annee annee_fin;
    Datalines;
    123534  2008    2011
    234567  2007    2012;
    run;
    Pour le premier identifiant "id", je voudrais calculer la moyenne des "mol" du premier dataset entre 2008 et 2011 (annee et annee_fin), meme chosse pour le suivant!

    Pourriez-vous me donner une idée de comment résoudre cet problème??

  2. #2
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Bonjour,

    avec une petite proc sql ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    proc sql;
    	select b.id, b.annee, b.annee_fin, mean(a.mol) as mean_mol
    	from test as a left join tutu as b on (a.annee between b.annee and b.annee_fin)
    		group by b.id, b.annee, b.annee_fin;
    	quit;

  3. #3
    Membre à l'essai
    Femme Profil pro
    apprentie développeur
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Anguilla

    Informations professionnelles :
    Activité : apprentie développeur
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Merci pour la réponse. J'ai aucune idée où je trouve le résultat?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    Pour créer une table de sortie, il faut juste changer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    proc sql;
    CREATE TABLE TABLE_SORTIE AS SELECT 
         b.id,
         b.annee,
         b.annee_fin,
         mean(a.mol) AS mean_mol
    FROM test AS a 
         LEFT JOIN tutu AS b ON (a.annee BETWEEN b.annee AND b.annee_fin)
         GROUP BY b.id, b.annee, b.annee_fin;
    quit;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sommer avec conditions dans une variable
    Par nmicoud dans le forum iReport
    Réponses: 1
    Dernier message: 15/07/2009, 14h34
  2. Réponses: 2
    Dernier message: 04/07/2008, 13h56
  3. Réponses: 22
    Dernier message: 21/04/2008, 16h14
  4. Pb variable avec espace vers une popup
    Par rdams dans le forum Langage
    Réponses: 5
    Dernier message: 30/08/2006, 15h20
  5. INSERT avec condition d'une table à une autre
    Par papipasto dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/03/2006, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo