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 21/09/2011, 17h46   #1
Membre du Club
 
Inscription : mai 2005
Messages : 209
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 209
Points : 64
Points : 64
Envoyer un message via MSN à tiyolx
Par défaut Automatiser l'écriture de mon chemin racine dans le code

Bonjour à tous,

Je souhaite automatisé l'écriture de mon chemin racine dans le code, la dernière partie ne marche pas (import).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
* ON nomme la librairie;
%let rep=NOM;
* ON choisit un répertoire de travail à executer à chaque ouverture de programme;
%let path=D:\MON_CHEMIN;
libname &rep "&path";
 
* ON créer les répertoires ci-dessous dans le répertoire racine de l'analyse;
* On désigne le répertoire des fichiers source;
%let source=&path.\SOURCE;
* On désigne les répertoires de stockage des sorties et des programmes;
%let sortie=&path.\SORTIES;
%let prog=&path.\SAS;
 
* On choisit un fichier .csv à importer;
proc import out = &NOM.ma_table
datafile = &source"mon_fichier.csv" 
dbms=dlm replace;
DELIMITER=';'; 
getnames=yes;
datarow=2;
run;
Merci d'avance
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 18h01   #2
Membre éprouvé
 
Homme Rémi Bousquet
responsable adjoint service stat
Inscription : mars 2009
Messages : 334
Détails du profil
Informations personnelles :
Nom : Homme Rémi Bousquet
Âge : 35
Localisation : France

Informations professionnelles :
Activité : responsable adjoint service stat
Secteur : Finance

Informations forums :
Inscription : mars 2009
Messages : 334
Points : 464
Points : 464
Tu peux essayer avec
Code :
datafile = "&source.\mon_fichier.csv"
Mais je t'invite à vérifier avant la résolution des macros variables dans la log avec %put :
Code :
%put ***datafile = "&source.\mon_fichier.csv"***;
RemiBousquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 18h05   #3
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Bonsoir,

Aurais tu la log correspondante suite à l'exécution d'un exemple ?

Par ailleurs

Je me demande si SAS va bien comprendre, peut-être en doublant le point déjà ?

Enfin si &NOM est bien supposé la racine d'une librairie...

jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 16h47   #4
Membre du Club
 
Inscription : mai 2005
Messages : 209
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 209
Points : 64
Points : 64
Envoyer un message via MSN à tiyolx
Merci de votre aide je regarde demain et je vous tiendrais au courant bien sûr.
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 11h40   #5
Membre du Club
 
Inscription : mai 2005
Messages : 209
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 209
Points : 64
Points : 64
Envoyer un message via MSN à tiyolx
Bonjour à tous,

voici le log

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
55   * ===========================================================================;
56   * ===========================================================================;
57   * =========================         DEMARRAGE          ======================;
58   * ===========================================================================;
59   * ===========================================================================;
60   * ON nomme la librairie;
61   %let rep=TRUC;
62   * ON choisit un répertoire de travail à executer à chaque ouverture de programme;
63   %let path=D:\TRUC;
64   libname &rep "&path";
NOTE: Libref TRUC was successfully assigned AS follows:
      Engine:        V9
      Physical Name: D:\TRUC
65
66   * ON créer les répertoires ci-dessous dans le répertoire racine de l'analyse;
67   * On désigne le répertoire des fichiers source;
68   %let source=&path.\SOURCE;
69   * On désigne les répertoires de stockage des sorties et des programmes;
70   %let sortie=&path.\SORTIES;
71   %let prog=&path.\SAS;
72   * ===========================================================================;
 
73   * ===========================================================================;
74   * ===========================================================================;
75   * =========================          IMPORT            ======================;
76   * ===========================================================================;
77   * ===========================================================================;
78   * Penser à changer la "virgule" en "point" dans les fichiers .xls;
79   * Avant l'import dans SAS et de les enregistrer en fichier .csv;
80   * ===========================================================================;
81
82   * ON choisit un fichier .csv à importer;
83   proc import out = &rep.."ma_table"
22: LINE AND COLUMN cannot be determined.
NOTE 242-205: NOSPOOL IS ON. Rerunning WITH OPTION SPOOL may allow recovery of the LINE AND
              COLUMN WHERE the error has occurred.
ERROR 22-322: Syntax error, expecting one of the following: ;, (, DATAFILE, DATATABLE, DBMS,
              FILE, OUT, REPLACE, TABLE.
NOTE: PROCEDURE IMPORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
 
NOTE: The SAS System stopped processing this step because of errors.
84   datafile = "&source.\ma_table.csv"
     --------
     202
ERROR 202-322: The OPTION OR parameter IS NOT recognized AND will be ignored.
 
85   dbms=dlm REPLACE;
86   DELIMITER=';';
87   getnames=yes;
88   datarow=2;
89   run;
j'attends vos remarques, merci d'avance
tiyolx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 11h45   #6
Membre du Club
 
Inscription : mai 2005
Messages : 209
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 209
Points : 64
Points : 64
Envoyer un message via MSN à tiyolx
oups j'avais oublié d'enlever les guillemets ça fonctionne maintenant merci.

pour ceux que ça intéresse voici le code entier

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
26
27
28
29
30
31
32
33
34
35
36
37
38
 
* ===========================================================================;
* ===========================================================================;
* =========================         DEMARRAGE          ======================;
* ===========================================================================;
* ===========================================================================;
* ON nomme la librairie;
%let rep=TRUC;
* ON choisit un répertoire de travail à executer à chaque ouverture de programme;
%let path=D:\TRUC;
libname &rep "&path";
 
* ON créer les répertoires ci-dessous dans le répertoire racine de l'analyse;
* On désigne le répertoire des fichiers source;
%let source=&path.\SOURCE;
* On désigne les répertoires de stockage des sorties et des programmes;
%let sortie=&path.\SORTIES;
%let prog=&path.\SAS;
* ===========================================================================;
 
 
* ===========================================================================;
* ===========================================================================;
* =========================          IMPORT            ======================;
* ===========================================================================;
* ===========================================================================;
* Penser à changer la "virgule" en "point" dans les fichiers .xls;
* Avant l'import dans SAS et de les enregistrer en fichier .csv;
* ===========================================================================;
 
* ON choisit un fichier .csv à importer;
proc import out = &rep..ma_table
datafile = "&source.\ma_table.csv" 
dbms=dlm REPLACE;
DELIMITER=';'; 
getnames=yes;
datarow=2;
run;
A+ et encore merci à la communauté
tiyolx 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 17h28.


 
 
 
 
Partenaires

Hébergement Web