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 :

Création d'un data avec le contenu d'une variable


Sujet :

SAS Base

  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Création d'un data avec le contenu d'une variable
    Bonjour,
    Je veux créer des fichiers (dont je ne sais pas le nombre exacte) selon le contenue d'une variable.

    EX:

    Var1 var2 Var3
    1 2000 900000
    2 2002 900000
    3 2004 900000
    4 2000 901000
    5 2001 901000
    6 2000 911000
    7 2002 911000
    8 2004 911000
    etc...

    Je voudrais me créer autant de data des valeurs différentes de Var3

    Résultats des noms de fichiers désirés avec son contenu:

    Fichier_900000 contiendrait:
    1 2000 900000
    2 2002 900000
    3 2004 900000
    Fichier_901000 contiendrait:
    4 2000 901000
    5 2001 901000
    Fichier_901000 contiendrait:
    6 2000 911000
    7 2002 911000
    8 2004 911000

    Je ne sais pas à l'avance le contenu de la variable Var3. Je voudrais créer dans mon programme le nom du data de sortie avec le numéro de Var3

    Alors comment je fais? Merci

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Céation d'un fichier par modalité d'une variable
    Bonjour,

    Il n'est pas clair si vous souhaitez créer des fichiers ou des tables SAS.

    Une proposition pour créer des fichiers :

    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 var1 var2 var3;
      cards;
    1 2000 900000
    2 2002 900000
    3 2004 900000
    4 2000 901000
    5 2001 901000
    6 2000 911000
    7 2002 911000
    8 2004 911000
    ;
    run;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    %macro macro_export(var3);  
      proc export data=test(where=(var3=&var3))
        outfile="d:\temp\Fichier_&var3..csv"
        dbms=csv
        replace;
      run;
    %mend;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    data _null_;
      set test;
      by var3;
     
      if first.var3 then do;
        call execute(cats('%macro_export(',var3,');'));
      end;
    run;
    (source)

    Cordialement,

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Une deuxième solution, toujours, via CALL EXECUTE mais sans macro langage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data _null_;
    set test (keep=var3 ) ;
    by var3 notsorted ;
    if first.var3 then do ;
    call execute(' 
    data '||'Fichier_'||strip(var3)|| '; set test( where=(var3='||strip(var3)||' )) ; run ;
    	     ') ;
    end ;
    run ;
    Cordialement
    Ward

  4. #4
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Création d'un data avec le contenu d'une variable
    Ça fonctionne parfaitement sauf que lorsque j'utilise une variable avec un contenu alphanumérique, le where ne le reconnaît pas et mets le même contenu dans tous les data.

    je l'ai écrit comme suit:

    data '||'Fichier_'||strip(var3)|| ';
    set test( where=(var3='||strip("var3")||' )) ; run ;
    ') ;


    Merci Beaucoup.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 482
    Points : 1 547
    Points
    1 547
    Par défaut
    Bonjour,
    Si le contenu de la variable Var3 est alphanumérique il faut mettre deux (")
    comme ça : "
    '||strip(var3)||'"

    Bon courage

  6. #6
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    C'est ce que je cherchais. Ça fonctionne très bien.

    Merci infiniment et bonne journée!

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

Discussions similaires

  1. Renommer fichier PHP avec le contenu d'une VARIABLE
    Par DezMax dans le forum Langage
    Réponses: 2
    Dernier message: 31/12/2012, 13h06
  2. Remplacer un motif avec le contenu d'une variable via sed / awk
    Par deupac dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 18/03/2010, 21h30
  3. Réponses: 7
    Dernier message: 02/11/2009, 15h40
  4. [PHP 4] Affichage d'une image avec chemin contenu dans une variable
    Par terrysharp dans le forum Langage
    Réponses: 1
    Dernier message: 16/07/2009, 15h54
  5. executer une requete avec le contenu d'une variable
    Par giloo(94) dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/02/2007, 02h58

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