Bonjour,
Je suis à la recherche d'une aide au sein d'une macro.
Je travaille depuis un fichier &data dans lequel j'ai une variable qui s'appelle nom contenant des chaines de caratères diverses, et une variable valeur contenant la valeur de 'nom'.
Lorsque cette variable "nom" contient "predil" par exemple en début de mot, je voudrais créer une macro variable "P" contenant la valeur de prédil, et si aucun nom ne contient "predil" alors P='.'.
Mon problème c'est que lorsque je travaille avec substr (avec un where), j'arrive à faire ce que je veux. Mais je n'arrive pas à appliquer le substr avec un if.
Voici mon code: (deux cas : le premier me récupère les macro variables dil, l'autre impose une condition, et c'est cette deuxièmpe partie qui bloque)
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 data dilution&j; set &data; where substr(nom,1,3)="dil" and SampleID=&type ; call symput (nom,valeur); /* Création de macro-variables */ run; data _NULL_; set &data; %let var=%substr(&data.nom,1,6) ; %put &var; %if var="predil" and SampleID=&type %then %do; call symput ("predil",valeur); %end; %else %do; call symput ("predil",'.'); %end; run;
En espérant que ma demande soit claire... Je cherche à vérifier qu'une variable contienne une chaine de caractère ou non, et suivant ce cas, adapter mes requêtes.
Partager