Bonjour à tous,
J’ai un problème avec ma base de données et je n’ai aucune idée de comment le résoudre.
Je cherche à affecter une valeur en ligne à la ligne précédente (ou suivante) selon la relation qu’il existe entre les deux individus.
J’ai les éléments suivants :
IDMEN = identifiant ménage
ID = identifiant à l’intérieur du ménage
SEXE= sexe de la personne où '1' = homme et '2' = femme;
ETATMAT= état matrimonial où ‘2’ correspond à une personne mariée ; ‘1’ célibataire et ‘5’ veuve/veuf
ENF = nombre d’enfant de la personne
RELPAR = relation de parentèle avec le référent du ménage
Où 01 est le/la référent(E) ; 02 son épouse ou son époux ; 06 est l’enfant de 01 ; 08 le/ conjoint(E) de 06 ;
IDMEN ID SEXE ETATMAT ENF RELPAR
01 01 1 2 . 01
01 02 2 2 2 02
01 03 2 2 3 06
01 04 1 2 . 08
01 05 1 1 . 06
02 01 2 5 1 01
02 02 2 2 2 08
02 03 1 2 . 06
Dans ce questionnaire le nombre d’enfant a été demandé seulement à la femme mariée (et pas à son conjoint). Je voudrais donc affecter ENF au conjoint.
Dans le cas où la RELPAR est 01 et 02 j’ai réussi en utilisant
Par contre, pour la relation 06 et 08 la situation est plus complexe car : parfois 06 est la femme (ex IDEMEN ‘01’), parfois c’est l’homme (IDMEN = ‘02’). En outre dans un ménage peut y avoir un deuxième enfant qui n’est pas marié (ex IDMEN=’01’ ETATMAT=’01’).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 proc transpose data=couple out=nb_enf (drop=_name_) prefix=nb_enf ; by IDMEN; var enf ; id rang; */ jai crée cette variable pour identifier seulement les couples /* run;
Je souhaite donc affecter le nombre d’enfant de la femme au conjoint lorsque on se trouve dans la configuration familiale 06, 08 en faisant attention à ne pas affecter le nombre d’enfant au mauvais enfant '06' (dans IDMEN=’01’ le 'mauvais' enfant est le deuxième 06, c’est-à-dire ‘homme célibataire habitant dans un logement avec ses parent, sa sœur et le mari de la sœur).
Il s’agit d’un exemple relativement complexe. J’espère d’avoir réussi à bien expliquer ce que je suis en train de chercher à résoudre.
Je vous remercie pour votre aide
Partager