Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: RE: Calculate number of alive male and female children from a family dataset


From   Anna Reimondos <[email protected]>
To   [email protected]
Subject   Re: st: RE: Calculate number of alive male and female children from a family dataset
Date   Mon, 31 May 2010 13:00:24 +1000

Thank you very much Martin -that did the trick.

I am very grateful!
Anna

On Mon, May 31, 2010 at 3:12 AM, Martin Weiss <[email protected]> wrote:
>
> <>
>
> Extension of this code to several mothers will require use of -bysort-, btw:
>
>
> ***********
> clear*
> set obs 6
> *Mother's id
> gen byte motherid=1
>
> *Birth order
> gen byte birth=_n
>
> *child's sex
> gen byte chsex=1+inlist(_n,4,5)
>
> label define chsex 1 male 2 female
> label values chsex chsex
>
> *born year
> gen int bornyear=1982
> replace bornyear=1985 in 2
> replace bornyear=1986 in 3
> replace bornyear=1989 in 4
> replace bornyear=1990 in 5
> replace bornyear=1995 in 6
>
> *death year
> gen deathyear=1994 in 2
>
> expand 2 if !mi(deathyear), gen(myindicator)
> gen year=cond(myindicator, deathyear, bornyear)
> la def myvals 0 "birth" 1 "death"
> la val myindicator myvals
> sort year
>
> gen deadmale=sum((chsex==1)*myindicator)
> gen deadfemale=sum((chsex==2)*myindicator)
> gen alivmale=sum((chsex==1)*!myindicator)-deadmale
> gen alivfemale=sum((chsex==2)*!myindicator)-deadfemale
> drop if myindicator
> drop myindicator year
> sort birth
>
>
> list, noo sepby(chsex)
> ***********
>
>
> HTH
> Martin
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Anna Reimondos
> Sent: Sonntag, 30. Mai 2010 11:44
> To: [email protected]
> Subject: st: Calculate number of alive male and female children from a
> family dataset
>
> Hello statalisters,
> I have a dataset which had the complete birth histories of a survey of
> women. The data is in 'long' format so that each woman has one
> observations for each child she has had. The information I want to
> work with is the child's date of birth, date of death (if applicable)
> and sex. From this I would like to calculate at the time of each
> birth, how many alive male children the woman had, how many alive
> female children, how many dead male children and how many dead female
> children. That is the part I am having trouble with.
>
> Here is a quick example of one hypothetical womans history:
> This woman has had 6 births (4 males, and 2 females - where sex=1 is
> male and sex=2 is female)
> All the children were still alive at the time of the survey except for
> the second birth. That child died in 1994.
> Based on this information I want to fill in the variables alivmale
> (number of male children alive at the time of the birth of child X),
> alivfem, deadmale and deadfem.
> For example at the time of the birth of the 6th child the woman had
> had 2 male children, 2 female children and the 1 male child that had
> died.
>
> motherid    Birth   sex   bornyear   deathyear   alivmale   alivfem
> deadmale deadfem
> 1                1          1    1982                           0
>         0            0             0
> 1                2          1    1985              1994      1
>      0             0            0
> 1                3          1     1986                          2
>          0            0            0
> 1                4          2    1989                           3
>          0           0             0
> 1                5          2     1990                          3
>          1           0              0
> 1                6          1    1995                           2
>          2           1               0
>
>
>
> I can't seem to get it right.
> I thought it would be a fun problem to get into, but after struggling
> now for quite a long time it is not so fun anymore.
> I hope someone will be able to see a solution....
> Thanks
> Anna
>
> P.S I have written the code to produce this dataset in STATA as well
> if that helps.
>
> set obs 6
> *Mother's id
> gen motherid=1
>
> *Birth order
> gen birth=.
> forvalues n=1/6 {
> replace birth=`n' in `n'/`n'
> }
>
> *child's sex
> gen chsex=1 in 1/3
> replace chsex=2 in 4/5
> replace chsex=1 in 6/6
>
> label define chsex 1 male 2 female
> label values chsex chsex
>
>
> *born year
> gen bornyear=.
> replace bornyear=1982 in 1/1
> replace bornyear=1985 in 2/2
> replace bornyear=1986 in 3/3
> replace bornyear=1989 in 4/4
> replace bornyear=1990 in 5/5
> replace bornyear=1995 in 6/6
>
> *death year
> gen deathyear=.
> replace deathyear=1994 in 2/2
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index