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 Base Discussion :

ajouter des occurrences a une variable dans une table


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Points : 12
    Points
    12
    Par défaut ajouter des occurrences a une variable dans une table
    Bonjour,

    Mon probleme est tres simple j'ai une table contenant une occurrence et je veux une table contenant plusieurs occurrences à la place : exemple



    Je dispose d'une table avec une variable F1 prenant des valeurs entieres et j'en repere le minimum avec la procedure MEANS, je souhaite en retirer l'element minum
    Ex : (table test)
    2
    3
    5
    8
    1
    4
    7
    9

    le minimum sera 1 et je fais un SET avec DELETE WHERE var = 1, ce qui donne :

    2
    3
    5
    8
    4
    7
    9

    le probleme vient du fait que le minimum est dans une table que j'ai appelée out avec une seule variable d'une seule occurrence qui est min
    donc pour pouvoir comparer a chaque ligne de ma colonne F1 avec le min, je souhaite creer une nouvelle variable prenant seulement cette valeur sur toute la taille de la table, j'aurais alors une table :


    F1 min1
    2 1
    3 1
    5 1
    8 1
    1 1
    4 1
    7 1
    9 1

    je n'arrive pas a créer cette variable

    Mon code actuel est :

    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 test2;
    MERGE test out;
    run;
     
    fournit la table :
    F1 min
    2   1
    3   
    5   
    8   
    1   
    4   
    7   
    9
    le probleme c'est que la colonne min n'a qu'une occurrence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DATA test2;
    SET test2;
    RETAIN min1;
    IF FIRST.F1 THEN min1=min;
    min1=min1;
    RUN;
    Ce code ne marche pas...
    Comprenez vous pourquoi?
    Je vous serais tres reconnaissante de toute l'aide que vous pourrez m'apporter.
    Cordialement,
    Stephanie

  2. #2
    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,

    La proc SQL de SAS permet de résoudre le problème en appelant la fonction MIN et en créant la table de sortie attendue en une seule étape...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    proc sql noprint ;
       create table work.class (label='Table exemple') as
          select * 
             , min(age) as mini label="Le minimum de l'âge"
          from sashelp.class
       ;
    quit ;
    Bon courage !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    ça marche super bien !!
    Merci beaucoup

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

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Réponses: 3
    Dernier message: 26/09/2008, 10h41
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 4
    Dernier message: 15/08/2007, 22h05
  5. Réponses: 1
    Dernier message: 15/02/2007, 00h24

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