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 :

1 seule étape data: keep / set / where avec création de variable


Sujet :

SAS Base

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut 1 seule étape data: keep / set / where avec création de variable
    Bonjour,

    J'ai une petite question pour vous. Est il possible de créer une variable après un keep / set / where ?
    Car dans l'exemple que je vous mets ci dessous, il ne me crée pas ma variable: pas d'erreur générée, mais pas de variable non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    data MaTableCible (keep=V1 V2);
    	set MaTableSource;
    	where V3="a" or V3="b";
    	combi=V1!!"_"!!V2;
    run;
    Donc je dois faire en 2 étapes data séparées.
    Soit je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data MaTableCible;
    	set MaTableSource;
    	where V3="a" or V3="b";
    	combi=V1!!"_"!!V2;
    run;
    puis j'enchaine avec une 2ème étape data où je "keep".

    Soit je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data MaTableCible (keep=V1 V2);
    	set MaTableSource;
    	where V3="a" or V3="b";
    run;
    puis j'enchaine avec une 2ème étape data où je crée ma variable combi.

    Merci.

  2. #2
    Membre Expert
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Par défaut
    avec ce code tu conserveras 3 variables: V1, V2 et combi. Mais il suppose que dans la table entrée tu aies une variable V3 pour lequel des observations = a ou b (sinon pas d'obsevations en table sortie!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DATA MaTableCible (keep=V1 V2 combi);
        SET MaTableSource;
        WHERE V3="a" OR V3="b";
        combi=V1!!"_"!!V2;
    run;
    J'espere que ca t'aidera.

    Manoutz

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut


    Merci à toi. ça marche.
    c'est plus rapide que de faire en étapes séparées !

    Merci
    a+

  4. #4
    Membre expérimenté
    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
    Par défaut
    Bonsoir,

    DATA MaTableCible (keep=V1 V2) ;
    SAS calcule bien ta donnée combi, mais tu lui dit de ne conserver en sortie que V1 et V2, alors ben... il le fait !

    Une version un peu plus optimisée sans doute où keep et where sont pris en paramètres du set plutôt qu'en instructions...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data MaTableCible (drop = v3) ; /* Suppression variable inutile en sortie */
       set MaTableSource
          (
             keep  = v1 v2 v3 /* Lecture des variables nécessaires au traitement */
             where = (upcase(v3) in ('A','B')) /* Sélection des observations */
          )
       ;
          combi = cats(v1,'_',v2) ; /* Création nouvelle variable */
    run ;
    Bon courage !
    Bruno

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/12/2014, 18h42
  2. Macro sur duplication (étape data avec output)
    Par maxime75010 dans le forum Macro
    Réponses: 4
    Dernier message: 27/12/2013, 14h40
  3. Importation avec une étape data
    Par huître dans le forum SAS Base
    Réponses: 10
    Dernier message: 27/04/2012, 15h28
  4. Import de données avec étape DATA
    Par atani12 dans le forum SAS Base
    Réponses: 10
    Dernier message: 15/06/2010, 13h54
  5. data set cube avec Birt
    Par Elise49 dans le forum BIRT
    Réponses: 9
    Dernier message: 25/03/2009, 18h07

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