Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2012, 12h25   #1
Invité de passage
 
Homme
Ingénieur/Statisticien
Inscription : juin 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur/Statisticien
Secteur : Santé

Informations forums :
Inscription : juin 2011
Messages : 6
Points : 3
Points : 3
Par défaut Automatiser un calcul pour un nombre important de tables

Bonjour, je voudrais automatiser un calcul mais je ne sais pas comment m'y prendre. Je dispose de 2200 fichiers, chaque fichier possédant un nom relativement différent d'un autre (ex: MYZUL58_05_02 et EQDQG98_09_05). Le mode de calcul comporte de nombreuses étapes (data, proc ...). Voici le début et la fin de mon programme.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
DATA New ;
SET ENR.MYXUL43_04_02;
run;
 
/* A partir de ce fichier new, j'exécute donc de nombreuses étapes, le but étant à la fin d'enregistrer le résultat  */ 
 
PROC EXPORT DATA =Resultat
OUTFILE = "C:\ENR.MYXUL43_04_02.xls"
DBMS = DLM REPLACE ;
DELIMITER = "09"x ;
RUN ;
Comment faire pour répéter de façon automatique cette étape sur l'ensemble de mes fichiers...

Merci d'avance
Guitouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 14h50   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 012
Points : 1 717
Points : 1 717
Quand tu dis "fichier" tu veux dire "fichier Excel " ou "table SAS"?
ext ce que c'est toutes les tables se trouvant dans cette lib que tu veux automatiser?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h00   #3
Invité de passage
 
Homme
Ingénieur/Statisticien
Inscription : juin 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur/Statisticien
Secteur : Santé

Informations forums :
Inscription : juin 2011
Messages : 6
Points : 3
Points : 3
Une table sas. Oui je veux automatiser tout les fichiers se trouvant dans la bibliothèque ENR.
Guitouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h15   #4
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 012
Points : 1 717
Points : 1 717
Ok, c'est simple :
Code :
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
 
 
 
proc sql;
CREATE VIEW tabs AS SELECT memname AS tabs FROM dictionary.TABLES WHERE 
upcase (libname)='ENR' AND upcase(memtype)='DATA' ;
quit;
 
DATA _null_;
SET tabs end=fin;
IF fin then call symput ('nbr', _n_);
            call symput (cats('tab',_n_), tabs);
run;
 
%macro _allTabs;
%do i=1 %TO &nbr.;
 
proc export DATA=ENR.&&tab&i.
            OUTFILE="C:\enr.&&tab&i...xls"
            DBMS = DLM REPLACE ;
            DELIMITER = "09"x ;
            RUN ; 
%end;
%mend;
%_allTabs;
tu replaces partout " MYXUL43_04_02 " par &&tab&i.
PS: il y a aussi call execute mais bon.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h44   #5
Invité de passage
 
Homme
Ingénieur/Statisticien
Inscription : juin 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur/Statisticien
Secteur : Santé

Informations forums :
Inscription : juin 2011
Messages : 6
Points : 3
Points : 3
Merci beaucoup. D'habitude je faisais ce calcul pour un nombre limité de fichiers. Je changeais donc manuellement le nom de mon fichier à cette étape.
Code :
1
2
3
4
 
DATA New ;
SET ENR.MYXUL43_04_02;
run;
Ensuite je travaillais à partir de la table new pour effectuer mes calculs. pour ensuite exporter ma table resultat. Cependant je ne vois pas ou insérer cette partie de code ainsi que les étapes du calcul ?

Avant d'exporter mon fichier ma table garde toujours le même non, à savoir résultat et non le nom de mon fichier.
Guitouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h47   #6
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 012
Points : 1 717
Points : 1 717
Code :
1
2
3
4
 
DATA new&i;
SET ENR.&&tab&i.;
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 11h42   #7
Invité de passage
 
Homme
Ingénieur/Statisticien
Inscription : juin 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur/Statisticien
Secteur : Santé

Informations forums :
Inscription : juin 2011
Messages : 6
Points : 3
Points : 3
Merci beaucoup !
Guitouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h33.


 
 
 
 
Partenaires

Hébergement Web