Vous n'êtes pas identifié.
Vous êtes sur le forum du master ESA !
Le site du master ESA - description de la formation, notes de cours, contacts... vient de déménager !!!
Venez visiter notre nouveau site : www.master-esa.fr
Bonjour,
J'ai un petit problème , quand j'ai essayé de voir le pourcentage des femmes et des hommes par rapport à une variable d'interêt (sélection), il ya une modalité "0" en plus , comment procéder pour faire disparaître cette modalité.
le tableau:
Sélection\SEXE 0 H F
0 % % %
1 % % %
j'ai pas pu collé le tableu SAS, j'ai essayé de faire ça:
rsubmit;
data ana.selection_detail; set ana.selection_detail;
if sexe in ('.', '0') then delete;
run;
rsubmit;
ça ne donne rien?
Hors ligne
Bonjour
la seule explication possible est que dans votre table il ya des modalités de sexe qui sont codées "0" verifier avec un proc freq
bien à vous
Hors ligne
Le problème c'est que il y a 0% pour cette modalité"0", c'est la proc freq que j'ai utilisé.
Merci.
Hors ligne
0% ne veut pas dire effectif nul (1/100000000= 0%)
il y a des problèmes dans votre programme...
if sexe in ('.', '0') then delete;
'.' n'est pas la valeur manquante d'une variable alphanumérique... (et d'ailleurs, est ce que votre variable est bien alphanumérique... vous savez, avec un FORMAT adéquat, vous pouvez avoir H ou F qui s'affichent tout en aillant derrière une variable numérique...)
donc :
if missing(sexe) or sexe=0 then delete ;
(je fais l'hypothèse que votre variable est numérique)
a+
Hors ligne
Merci, je vais essayer .
Hors ligne
La variable sexe est alphanumérique, j'ai réussi à éliminer le "0".
Merci.
Hors ligne
Le problème était facile, j'ai pas fais attention aux missing ou sexe=0 , et quand j'ai mis : if missing(sexe) or sexe=0 then delete , le tableau de fréquences m'affiche que H ou F avec des pourcentages un peu plus faible qu'avant. voilà
Merci
Hors ligne
La proc contents m'affiche la variable sexe comme alpahanumérique, et la condition if missing(sexe) or sexe=0 then delete a bien marché, je vais essayer par la condition if missing(sexe) then delete.
merci.
Hors ligne
en fait j'ai mis if sexe='' then delete m'a donné le même résultat que if missing(sexe) or sexe=0 then delete ????
Hors ligne
je pensais que le problème était facile.......c'est résolu?
Hors ligne
oui sspdiddy, c'est résolu mais c'est un peu bizarre soit alpha ou num donnent la même chose
Hors ligne
non, ce n'est pas bizarre (et c'est moi qui qui embête pour rien)...
un exemple :
data toto; input sexe $ ; cards 0 1 2 ; data select1;set toto; where sexe ne 0; run; data select2;set toto; if sexe ne 0; run;
et vous allez constatez qu'avec WHERE, ça ne passe pas (avec where, si la variable est alpha, il faut une modalité alpha (et donc '0')) et avec IF, ça passe : rappelez vous le fonctionnement du PDV et vous vous direz que c'était évident.
ensuite pour vos valeurs manquantes :
si la variable est alpha, sexe='';
si la variable est numérique : sexe=.
jamais de '.' pour saisir une valeur manquante alpha !!
et vous gagnez du temps avec la fonction MISSING....
a+
Hors ligne