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 15/05/2008, 11h19   #1
Invité de passage
 
Inscription : mai 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 5
Points : 1
Points : 1
Par défaut concaténation de macros

bonjour
j'essaye de réaliser une macro qui me servirait à créer des fichiers Transports de sas mais j'ai un problème au niveau de la définition de mes libnames dans la macro (d'ailleurs je ne sais pas si c'est très propre de placer des libnames dans une macro).

Code :
1
2
3
4
5
6
7
8
9
10
11
%Macro export_xpt(dir, lib, data);
libname &lib &dir;
options nofmterr; 
libname libXpt xport &dir..&data..xpt; 
proc copy in=&lib out=libXpt select &data;
run;
%Mend export_xpt;


%export_xpt ("C:\Documents and Settings\JuAn\Mes documents\Julien\R\TESTS", saslib, camp220305);
l'erreur que sas me répond est :

Code :
1
2
3
4
5
 
ERROR: Libname LIBXPT IS NOT assigned.
ERROR: Error IN the LIBNAME statement.
 
ERROR 22-7: Invalid OPTION name .C.
le but des .. étant de concaténé les 2 noms de variables avec un . entre les 2, ici il comprend que c'est une option.

merci de votre aide
Phyxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 11h22   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Essaye ce code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
OPTION mprint;
%Macro export_xpt(dir, lib, DATA);
libname &lib "&dir";
options nofmterr; 
libname libXpt xport "&dir..&data..xpt"; 
/*proc copy in=&lib out=libXpt select &data;
run;*/
%Mend export_xpt;
 
 
%export_xpt (C:\Documents AND Settings\JuAn\Mes documents\Julien\R\TESTS, saslib, camp220305);
est ce que c'est le libname que tu veux créer?
Code :
1
2
3
 
libname libXpt xport
 "C:\Documents and Settings\JuAn\Mes documents\Julien\R\TESTS.camp220305.xpt"
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 11h55   #3
Invité de passage
 
Inscription : mai 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 5
Points : 1
Points : 1
merci, il met toujours la meme erreur, Invalid option name C.
le libname que je souhaite créer est


Code :
1
2
libname libXpt xport
 "C:\Documents and Settings\JuAn\Mes documents\Julien\R\TESTS\camp220305.xpt"
Phyxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 11h57   #4
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
OPTION mprint;
%Macro export_xpt(dir, lib, DATA);
libname &lib "&dir";
options nofmterr; 
libname libXpt xport "&dir.\&data..xpt"; 
/*proc copy in=&lib out=libXpt select &data;
run;*/
%Mend export_xpt;
 
 
%export_xpt (C:\Documents AND Settings\JuAn\Mes documents\Julien\R\TESTS, saslib, camp220305);
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 12h07   #5
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Elle fait quoi la proc copy dans ton cas?
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 12h12   #6
Invité de passage
 
Inscription : mai 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 5
Points : 1
Points : 1
merci beaucoup
pb résolu
je n'avas pas que que tu avais supprimé les "" dans la ligne du bas.
Phyxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 12h13   #7
Invité de passage
 
Inscription : mai 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 5
Points : 1
Points : 1
la proc copy je crois qu elle sert à créer le fichier .xpt dont j'ai besoin
si il y a une manière plus claire de l'écrire je suis preneur mais ca marche comme ca en tout cas
Phyxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 12h16   #8
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
la proc export sert à créer des fichiers (txt, csv, XLS (avoir le module SAS/access to pc file)) à partir des tables SAS.
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 12h25   #9
Invité de passage
 
Inscription : mai 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 5
Points : 1
Points : 1
oui en fait ca sera plus simple je vais exporter en txt, j'ai l'impression que le format xpt a quelques problèmes avec mes noms de variables trop longs ou autre chose mais au final il pose un problème
merci pour ton aide

sinon par rapport au format csv, il ne pose pas de problème si on a des chiffres à virgule dans la table ?
Phyxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2008, 13h21   #10
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Sous SAS le séparateur des numériques est un '.' et non ','.
bahraoui 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 16h57.


 
 
 
 
Partenaires

Hébergement Web