Bonjour
je souhaiterais sélectionner un nombre d'observation selon le nombre de cliente présente dans chaque magasin:
si le nb de cliente < 1000, on les garde toutes.
si le nb de cliente>= 1000, on garde seulement 500 clientes.
ci dessous mon code qui ne fonctionne pas au niveau de la sélection des 500 dans le then output. J'ai un message d'erreur dans ma log qui m'avertit d'une erreur de syntaxe.
je pourrais passé par une étape data supplémentaire, mais ma macro va mettre encore beaucoup plus de temps à mouliner.... Je pense qu'il y a une solution, mais avec certains de mes collègues nous n'avons pas trouver la solution... Est-ce que quelqu'un a la clé à ce problème, svp?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 %MACRO Macro_mag_SMS(Mag= ,i= ); Proc sort data=table_cible_sms(where=(Code_Magasin="&Mag.")) out=table_cible_sms_tr; by descending Segment ; Run; /***** Ciblage SMS ****/ Data Tab_SMS1_mag ; set table_cible_sms_tr; if _N_ < 1000 then output Tab_SMS1_mag; if _N_ >= 1000 then output Tab_SMS1_mag (obs=500) ; Run; Data Tab_SMS1_mag_cible_&i. Tab_SMS1_mag_temoin_&i.; set Tab_SMS1_mag; if ranuni(123)<0.90 then output Tab_SMS1_mag_cible_&i.; else output Tab_SMS1_mag_temoin_&i.; Run; ....
Merci!




Répondre avec citation




Partager