Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Equivalent dans une boucle ?
3 participants
Page 1 sur 1
Equivalent dans une boucle ?
Hello,
Question bête ... mais je cherche à automatiser un bout de programme assez simple sans en trouver une solution.
Je cherche en bref à déclarer des macros variables et qu'elles aient la forme suivante : 1601, 1602, 1603, ..., 1612.
Les deux premiers chiffres représentent l'année 2016 et les deux derniers le mois. Le 16 est déjà déclaré. Mais de quelle façon pourrais - je ajouter les deux autres chiffres avec une boucle ? Ce qui me pose soucis dans ce cas, c'est le "0" pour les 9 premier cas. J'ai peur d'obtenir 161, 162, etc ... au lieu de mes résultats en utilisant un %do i=0 to 12.
Je cherche un équivalent à ce bout de code grossier :
Question bête ... mais je cherche à automatiser un bout de programme assez simple sans en trouver une solution.
Je cherche en bref à déclarer des macros variables et qu'elles aient la forme suivante : 1601, 1602, 1603, ..., 1612.
Les deux premiers chiffres représentent l'année 2016 et les deux derniers le mois. Le 16 est déjà déclaré. Mais de quelle façon pourrais - je ajouter les deux autres chiffres avec une boucle ? Ce qui me pose soucis dans ce cas, c'est le "0" pour les 9 premier cas. J'ai peur d'obtenir 161, 162, etc ... au lieu de mes résultats en utilisant un %do i=0 to 12.
Je cherche un équivalent à ce bout de code grossier :
- Code:
%let annee = %substr(&year0.,3,2);
/* "year0" correspondant à 2016. */
%let mois_1 = &annee.01;
%let mois_2 = &annee.02;
%let mois_3 = &annee.03;
%let mois_4 = &annee.04;
%let mois_5 = &annee.05;
%let mois_6 = &annee.06;
%let mois_7 = &annee.07;
%let mois_8 = &annee.08;
%let mois_9 = &annee.09;
%let mois_10 = &annee.10;
%let mois_11 = &annee.11;
%let mois_12 = &annee.12;
Mac_Leod- Nombre de messages : 28
Date d'inscription : 25/06/2015
Re: Equivalent dans une boucle ?
Bonjour,
tu peux faire une boucle en rajoutant une condition du genre :
Niaboc
tu peux faire une boucle en rajoutant une condition du genre :
- Code:
%do i=1 %to 12;
%if &i<10 %then %do;
%let i=0&i;
%end;
/*blablabla*/
%end;
Niaboc
niaboc- Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008
Re: Equivalent dans une boucle ?
Tu as peur...
Pourtant moi si je teste ton code ça l'air de marcher, te suffit juste d'automatiser en faisant:
Ca ne marche pas si tu fais,
?
Pourtant moi si je teste ton code ça l'air de marcher, te suffit juste d'automatiser en faisant:
Ca ne marche pas si tu fais,
- Code:
%macro test();
%let annee = %substr(2016,3,2);
/* "year0" correspondant à 2016. */
%do t = 1 %to 12;
%if &t. < 10 %then %do;
%let mois_&t. = &annee.0&t.;
%end;
%if &t. >= 10 %then %do;
%let mois_&t. = &annee.&t.;
%end;
%end;
%put &mois_1. &mois_5. &mois_12.;
%mend;
%test();
?
Re: Equivalent dans une boucle ?
Merci beaucoup, les deux solutions fonctionnent parfaitement.
Mac_Leod- Nombre de messages : 28
Date d'inscription : 25/06/2015
Sujets similaires
» Créer des objets différents dans une boucle
» Execution d'une boucle dans R (comparaison de modèles)
» Boucle for pour chercher le maximum dans une colonne
» nombre statistiquement équivalent
» Regression multiple => équivalent non paramétrique?
» Execution d'une boucle dans R (comparaison de modèles)
» Boucle for pour chercher le maximum dans une colonne
» nombre statistiquement équivalent
» Regression multiple => équivalent non paramétrique?
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|