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éer une librairie à partir d'une autre


Sujet :

SAS Base

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Points : 161
    Points
    161
    Par défaut Créer une librairie à partir d'une autre
    bonjour tout le monde,

    Comme je travaille avec des librairies qui contiennent de grosses bases SAS (des milliers) et comme je dois optimiser un programme, j'aimerais savoir si on peut créer une librairie bis qui contiendrait seulement les 20 premières observations de chacune de mes tables de la librairie.

    En effet, impossible de mettre les tables dans ma clé USB de 1 GO.

    merci de votre aide.

    ash_rmy.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 411
    Points
    411
    Par défaut
    Bonjour,

    Soit lib1 la librairie de départ et lib1bis celle dans laquelle on mettra les echantillons des bases.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    * permet d'obtenir la liste de toutes les variables de toutes les tables contenues dans lib1;
    proc contents data =  lib1._all_ out=nomstable noprint;
    quit ;
     
    * on ne conserve que les noms des tables;
    proc sort data = nomstable (keep=MEMNAME) nodupkey ;
      by memname ;
    run;
     
    * on crée des macros variables contenant le nombre total de tables (nbt) 
      et on attribue à nomt&i le nom de la table &i;
    data nomstable;
      set nomstable  ;	
      retain nbrt 0; 
      length nmv $ 40;
      nbrt+1;
      nmv=compress('nomt' !! put (nbrt,2.));
      CALL symput(nmv,memname)     ;
      call symput('nbt',put(nbrt,2.));
    run;
     
    * on copie chaque table de lib1 dans lib1bis en ne conservant que les 20 premieres observations;
    %macro copier;
    %do i = 1 %to &nbt;
    data lib1bis. &&nomt&i;
      set lib1.  &&nomt&i (obs=20); 
    run;
    %end;
    %mend;
    %copier;
    Il y a peut être plus simple mais ca fonctionne.

  3. #3
    Responsable SAS


    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Points : 16 219
    Points
    16 219
    Par défaut
    C clair que tu peux difficillement faire plus simple sur Sas.
    Les balises code
    FAQ SAS
    Rubrique SAS

    Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 289
    Points : 161
    Points
    161
    Par défaut
    Merci pour l'aide :

    J'ai trouver un programme un peu plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc datasets library=BIG nolist; 
       libname LITTLE 'H:\DPEI-FINANCES-REPORTING\Infocentre\Ashley Rmy\SAS'; 
       options obs=20; 
       copy out=little memtype=data; run; 
       options obs=max; 
       quit;
    ash_rmy.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/06/2012, 12h12
  2. [Batch] Créer une chaine à partir d'une variable et d'une autre chaine
    Par mlle lain dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 10/11/2009, 16h26
  3. Réponses: 28
    Dernier message: 05/03/2009, 12h55
  4. Réponses: 2
    Dernier message: 05/01/2009, 12h45
  5. Réponses: 5
    Dernier message: 22/05/2008, 14h42

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