Bonjour,
Je cherche à identifier pour une variable toutes les valeurs qui contiennent autre chose que des chiffres ou un point (donc les signes >, <, ; / etc)
J'ai vu sur d'autres posts que l'on peut utiliser la fonction prxmatch et une expression régulière. Mais je n'y arrive pas ...
Je pourrai utiliser la fonction index mais je n'ai pas envie de lister tous les caractères spéciaux.
Avec prxmatch, dans un premier temps, j'ai essayé de trouver tous les caractères qui ne sont pas des chiffres (je ne me suis donc pas occupée du point).
> w = une lettre (maj./min.), un chiffre ou "_"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 data matable; set matable; if prxmatch('/\^w/',mavar)^=0 then specar1=1; run;
> avec le ^, je me dis que prxmatch retourne un chiffre supérieur à 0 si ma variable contient autre chose qu'une lettre (maj./min.), un chiffre ou "_"
> mais ça ne marche pas, tous mes specar1 sont différents de 1
ex: ma variable contient <1.2 => specar1=.
> W = un caractère autre qu'une lettre, un chiffre ou le "_"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 data matable; set matable; if prxmatch('/\W/',mavar)^=0 then specar2=1; run;
> je me dis que prxmatch retourne un chiffre supérieur à 0 si ma variable contient autre chose qu'une lettre (maj./min.), un chiffre ou "_"
> mais ça ne marche pas, tous mes specar2 sont égaux à 1
ex: ma variable contient 23 => specar2=1
Est ce l'expression régulière qui n'est pas correcte ?
Merci de votre aide.
Partager