|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Mariam Statisticienne-Consultante BI Inscription : avril 2008 Messages : 127 ![]() |
Bonjour,
Dans une etape date je crée des variables dans une boucle en fonction des mois. MN_1_2010....MN_i_2010. Maintenant je voudrais créer ma variable MN_31_DEC_2010 UNIQUEMENT si mon mois =12. Je sais comment créer des tables conditionnelles (if...then output nom_table) mais comment fait-on avec des variables?. J'ai tenté le coup avec if &mois=12 then put MN_31_DEC_2010 =montant; PS:J'ai appliqué la fonction rechercher pour trouver un sujet similaire mais j'ai pas eu mon bonheur. |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() |
c'est tout simple: if ... then do; new_var=val; output table; end; Code :
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() |
Tu peux créer autant de variable que tu veux avant l'output.
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Mariam Statisticienne-Consultante BI Inscription : avril 2008 Messages : 127 ![]() |
Merci cependant la solution que tu me propose crée deux tables en sorties avec une valeur différente de b selon la condition sur a.
Moi je voudrais que b se créée uniquement pour une valeur existante de a. Sinon je ne voudrais pas de b dans ma table de sortie. Mais j'ai l'impression que le fait même de faire appel à b dans la conidition suffit pour la créée dans le resultat. Ce que je voudrais serait comme un keep ou un drop conditionnel. A défaut j'afficherais toujours la variable et elle aura une valeur quand ma condition sera remplie. Merci. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Mais comme tu l'indiques Mariam, c'est juste une affaire de KEEP ou de DROP !
Si tu ne veux pas la variable X dans la table T1 mais par contre, dans T2, tu fais |
|
|
00
|
|
|
#6 | ||
|
Membre régulier
![]() Mariam Statisticienne-Consultante BI Inscription : avril 2008 Messages : 127 ![]() |
Bonjour,
J'ai rien contre la creation d'une autre table mais ce que je veux vraiment c'est : pour la même table en SORTIE la creation ou pas d'une variable en fonction d'une variable existante dans la table en ENTRÉE. Si on s'inspire du cas plus haut avec a et b. Code :
a mois 1 12 2 12 Voici l'illustration du résultat souhaité: une table t1 de la forme: SI mois = 12 (cdt remplie) b=2; T1 vaut a mois b 1 12 2 2 12 2 SINON (mois ne 12) T1 vaut ![]() a mois 1 12 2 12 Merci de vos retours. |
||
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : novembre 2009 Messages : 77 ![]() |
Attention: dans ton dataset résultat, tu as ou pas la colonne b, mais pas pour certaines lignes oui et pour d'autres non, cela n'a pas de sens.
Ici dès qu'une des lignes contient 12 on garde la colonne b: Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Mariam Statisticienne-Consultante BI Inscription : avril 2008 Messages : 127 ![]() |
Ton exemple par du fait que b existe déjà et je la supprime selon la condition sur a.
Dans mon cas b n'existe pas à la base je la crée que lorsque ma condition sur a est remplie (a prend la même valeur sur toutes les lignes c'est un paramètre de ma macro). Ce n'est pas la même approche. Peut être le contexte vous éclairera sur le besoin: J'ai une table avec des clients. Pour chacun des clients j'ai l'historique de ses prestations (peut être des rentes inval, des rentes de retraite....) Exemple: Cl1 mt_31_DEC_2001...mt_31_DEC_2006....mt_1_2010...mt_7_2010 25 100 500 50 50 Pour tous les montants avant l'année en cours, j'ai les montants au 31 DEC et pour mon année en cours je ventile par les montants mensuels. Dans l'exemple je suis au mois de juillet. Je fais des stats tous les mois, j'ai donc une variable macro qui s'incrémente à travers une boucle. Arrivée en décembre (donc mt_12_2010) j'ai une année complète donc je voudrais avoir mt_31_DEC_2010 de rajouter à ma table avant de débuter les mensuels de 2011. Je ne voudrais pas afficher cette variable tant que l'on est pas arrivé en décembre. Comme je disais plus haut à défaut de solution je l'afficherai quand même toute l'année et elle ne sera alimentée que rendu en décembre. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com