Bonjour à tous et merci d'avance à ceux qui prendront le temps de me lire ;!
Je commence à m'initier aux macros sur SAS, et c'est pas encore ça. Arrivant de R, les boucles sur SAS me sont encore bien farfelues. J'ai donc une question, je bloque dessus et impossible d'avancer ...
Pour ce qui est du contexte, je dispose d'une table regroupant les caractéristiques d'une population hétérogène avec la consommation ou non d'anxiolytiques (i.e. benzodiazepine), ainsi que leur date de délivrance du médicament (EXE_SOI_DTD) et de fin (EXE_SOI_DTF).
Afin de créer des variables dépendantes du temps, je souhaite tout simplement par le biais d'une instruction IF vérifier si le sujet a consommé ou non ce médicament à un mois donné et une année donnée.
Je pars donc d'une première boucle do (année de 2007 à 2015) et une seconde boucle (mois de 1 à 12). Je vérifie donc que la condition est respectée pour attribuer à une variable que je crée, la valeur 1 si c'est vérifié. MAIS mon problème est là ... Je cherche donc à créer plusieurs variables (exemple : conso_1_2010 ; conso_12_2014, etc.), 108 variables au total, et impossible de récupérer les valeurs des indices des boucles pour nommer les variables.
Quelqu'un pourrait-il me venir en aide ... s'il vous plait ahah
Voici le code de ma macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 %macro conso_m; data bdd.prescription; set bdd.prescription; %do y=2007 %to 2015; %do m=1 %to 12; %if benzodiazepine = 1 %then %do; %if (&y. >= year(EXE_SOI_DTD) and &y. <= year(EXE_SOI_DTF) and &m. >= month(EXE_SOI_DTD) and &m. <= month(EXE_SOI_DTF)) %then conso_&m._&y. = 1; %end; %else conso_&m._&y. = 0; %end; %end; run; %mend;
Partager