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 :

Calcul sur une colonne


Sujet :

SAS STAT

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 181
    Points
    181
    Par défaut Calcul sur une colonne
    Bonjour,
    j ai une colonne X avec des valeur numérique;
    je voudrais creer une colonne :
    Y(i) = X(i-2) + X(i-1)

    je m en sort pas avec l etape data car ca boucle sur les ligne et pas moyen de revenir recupéré la donnée d une autre ligne...

    merci

  2. #2
    Responsable SAS


    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Points : 16 157
    Points
    16 157
    Par défaut
    Bonjour,
    Tu peux utiliser l'option lag comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DATA base;
    INPUT y;
    CARDS;
    1
    3
    2
    6
    ;
    DATA base2;
    SET base;
    y2=lag1(y);
    y3=lag2(y);
    y4=lag3(y);
    RUN;

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 181
    Points
    181
    Par défaut
    Merci fafa,

    voila ce que j ai fait au final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    proc iml;
    toto = j(100,2);/* creer un vecteur de 1 avec 100 lignes , 2 colonnes */
     
    	use exo1;
    	READ ALL VAR _ALL_ into X;
     
     
    do i = 1  to 100;
    	if i = 1 | i =2 then toto[i,1]=0;
    	else toto[i,1] = toto[i-1,1] + 6*toto[i-2,1] + X[i,1];
    	if i = 100 then ;
    	else toto[i+1,2] = toto[i,2] + 1;
    end;
     
     
    /* on exporte notre matrice */
    	create toto from toto;
    	append from toto;
    	close toto;
    quit;

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    N'est-il pas plus simple (et rapide) de passer par une simple étape data ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    data work.test (label = valeurs initiales de x) ;
       input x ;
       cards;
    1
    2
    3
    4
    5
    6
    7
       ;
    run ;
    data work.test (label = 'y(i) = x(i-2) + x(i-1)') ;
       set work.test ;
       y = lag2(x) + lag1(x) ;
    run ;
    Bon courage !

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Points : 181
    Points
    181
    Par défaut
    salut bruno,

    Je suis tout a fait d accord avec toi, mais je n ai vu la solution de fafab qu'apres avoir trouver un moyen de m en sortir que j ai cité.

    Merci en tout cas ! je ne connaissais pas la fct lag

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

Discussions similaires

  1. Calculs sur une colonne pour extraire trois valeurs
    Par sp2308 dans le forum SQLite
    Réponses: 2
    Dernier message: 27/03/2014, 12h47
  2. Calcul sur une colonne d'une autre table
    Par Patrice Henrio dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/04/2012, 00h23
  3. [SP-2010] calcul sur une colonne provenant d'une autre liste
    Par tortuegenie dans le forum SharePoint
    Réponses: 3
    Dernier message: 01/08/2011, 13h21
  4. [SP-2010] Valeur Calculé sur une colonne
    Par Kevin0363 dans le forum SharePoint
    Réponses: 4
    Dernier message: 19/05/2011, 11h49
  5. [AC-2007] calcul sur une colonne
    Par titi57 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/10/2009, 15h07

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