Bonjour à tous,
Je vous pose l'énième question concernant des array.
J’ai créé le programme suivant où je tente d’établir si un enfant est ne ou pas dans le mariage. Les variables sont les suivantes :
anaisenf_: / années de naissance des enfants (data la base il y en a 13 au maximum)
datmat1-datmat6 / dates des différents mariages (data la base il y en a 6 au maximum)
fin1-fin6 / dates des divorces ou veuvages (data la base il y en a 6 au maximum)
$ STATENF1-STATENF13 / je créé ces variables pour connaître la ‘nature’ de l’enfant (qui sont 13 au maximum)
Sachant qu’il existe dans la base des femmes qui n’ont pas connu l’événement datefin(n), je leur ai attribu datefin(n)=2005 (date de l’enquête).
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
18
19
20 DATA NAISS3 ; SET NAISS2 ; WHERE SEXE='2'; array enf (13) anaisenf_: ; array statenf (13) $ STATENF1-STATENF13 ; array debmat (6) datmat1-datmat6; array datfin (6) fin1-fin6 ; do i=1 to dim(enf); do n=1 to 6; if enf(i) ne . then statenf(i)='naiss_hm'; if not missing(debmat(n)) then do; if debmat(n)>0 and datfin(n)=. then datfin(n)=2005; if enf(i) ne . and debmat(n)<=enf(i)<=datfin(n) then statenf(i)='naiss_ma' ; /*cette partie ne marche pas */ end; end; end; keep statenf: anaisenf_: datmat1-datmat6 fin1-fin6 ; run;
En gros, je désire établir que lorsque la naissance de l’enfant est comprise entre la date du mariage et la date du divorce, alors cet enfant est né dans le mariage.
Mon programme toutefois ne marche visiblement pas
Avez-vous des suggestions à me faire ?
Toute ma reconnaissance à ceux qui voudront répondre
Partager