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 23/11/2010, 16h12   #1
Futur Membre du Club
 
Inscription : avril 2009
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2009
Messages : 81
Points : 19
Points : 19
Par défaut input cards boucle incrémenter

Bonjour le code suivant ne marche pas mais je ne trouve pas le bug.

Code :
1
2
3
4
5
6
7
8
9
10
11
%macro fu;
DATA rr ;
INPUT OPCINT $ NUM MT;
CARDS ;
%do i=1 %TO 5;
AMJ08 &i 0
;
%end;
RUN;
%mend fu;
%fu;
en gros je veux le resultat suivant
Code :
1
2
3
4
5
6
 
AMJ08 1 0
AMJ08 2 0
AMJ08 3 0
AMJ08 4 0
AMJ08 5 0
j'obtiens le message d'erreur suivant :
Code :
1
2
3
ERROR: The macro FU generated CARDS (DATA LINES) FOR the DATA step, which could 
       cause incorrect results.  The DATA step AND the macro will stop 
       executing.
merci !
docteurdorian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 16h48   #2
Membre du Club
 
Isabelle
Inscription : novembre 2007
Messages : 44
Détails du profil
Informations personnelles :
Nom : Isabelle
Âge : 34
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 44
Points : 57
Points : 57
Bonjour,

Tu trouveras la réponse à ton problème dans le message suivant.

http://www.developpez.net/forums/d61...acro-sous-mvs/
bab22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 17h14   #3
Futur Membre du Club
 
Inscription : avril 2009
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2009
Messages : 81
Points : 19
Points : 19
Par défaut fin

ok merci beaucoup isabelle.

voici le bon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
%macro rr2;
DATA liste2bis ;
ATTRIB opcint
FORMAT = $6.;
ATTRIB numm
FORMAT = $2.;
%do i=1 %TO 5;
opcint = "AMJ08";
numm = &i;
output;
%end;
RUN;
%mend;
%rr2;
docteurdorian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 17h14   #4
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 133
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 133
Points : 1 744
Points : 1 744
de toute facon tu n'as pas besoin du language macro dans ton cas(ni du cards d'ailleurs):

Code :
1
2
3
4
5
6
7
8
DATA RR;
format opcint $8. num mt best12.;
do num=1 TO 5;
opcint="amj08";
mt=0;
output;
end;
run;
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 17h17   #5
Futur Membre du Club
 
Inscription : avril 2009
Messages : 81
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : avril 2009
Messages : 81
Points : 19
Points : 19
oui en effet.

j'ai voulu faire trop compliqué.

merci
docteurdorian 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 09h04.


 
 
 
 
Partenaires

Hébergement Web