I like the bysort but we need to take the highest numbered kid and
perhaps that birthdate is missing. Try this:
How about
gsort momid -child_ n
by momid:keep if _n==1
This will produce a dataset with one observation per mother - her first
born child. Merged back into your mother's dataset will then allow you
to get mother's age at first birth.
ssa
/***********************************
Sidney Atwood
Manager
Instructional Computing Facility
Harvard School of Public Health
Kresge, LL-17
677 Huntington Avenue
Boston, MA 02115
617-432-3134
617-432-4998 - Fax
************************************/
>>> [email protected] 4/26/2004 11:41:37 AM >>>
I just want to be more clear with the data that I have again:
I have the following variables:
Age of mother, all pregnancies the mother has had (starts with last
born and
ends with first born), birthday for each child, an indicator variable
for
the child number which runs from 0 to the last child. So, I want the
reverse
order for the list of children (first born to last born).
There are a total of roughly 16,000 pregnancies for the women and I
tried
what Nick suggested but I am just wondering why I am getting the same
number
of pregnancies (16,000). I thought the first births would be less than
the
16,000.
This is how my data are:
tab child_n if child_n!=88 (In this case child 1 is last born, child 2
is
second to last born etc etc)
child |
number | Freq. Percent Cum.
------------+-----------------------------------
1 | 4,105 24.71 24.71
2 | 3,452 20.78 45.49
3 | 2,899 17.45 62.93
4 | 2,345 14.11 77.05
5 | 1,628 9.80 86.85
6 | 1,090 6.56 93.41
7 | 607 3.65 97.06
8 | 309 1.86 98.92
9 | 104 0.63 99.55
10 | 47 0.28 99.83
11 | 17 0.10 99.93
12 | 9 0.05 99.99
13 | 2 0.01 100.00
------------+-----------------------------------
Total | 16,614 100.00
tab year (year child was born)
year child |
born | Freq. Percent Cum.
------------+-----------------------------------
0 | 717 4.23 4.23
1 | 657 3.88 8.11
2 | 653 3.85 11.96
3 | 570 3.36 15.32
60 | 2 0.01 15.33
61 | 1 0.01 15.34
62 | 1 0.01 15.34
63 | 2 0.01 15.36
64 | 1 0.01 15.36
65 | 1 0.01 15.37
66 | 2 0.01 15.38
67 | 5 0.03 15.41
68 | 9 0.05 15.46
69 | 14 0.08 15.54
70 | 45 0.27 15.81
71 | 35 0.21 16.02
72 | 74 0.44 16.45
73 | 112 0.66 17.11
74 | 109 0.64 17.76
75 | 151 0.89 18.65
76 | 174 1.03 19.67
77 | 207 1.22 20.90
78 | 256 1.51 22.41
79 | 253 1.49 23.90
80 | 399 2.35 26.25
81 | 348 2.05 28.31
82 | 347 2.05 30.35
83 | 481 2.84 33.19
84 | 509 3.00 36.19
85 | 487 2.87 39.07
86 | 526 3.10 42.17
87 | 583 3.44 45.61
88 | 1,806 10.65 56.26
89 | 525 3.10 59.36
90 | 722 4.26 63.62
91 | 608 3.59 67.21
92 | 610 3.60 70.80
93 | 682 4.02 74.83
94 | 693 4.09 78.92
95 | 700 4.13 83.05
96 | 711 4.19 87.24
97 | 724 4.27 91.51
98 | 638 3.76 95.27
99 | 801 4.73 100.00
------------+-----------------------------------
Total | 16,951 100.00
I hope this helps
Henry
********************************************************
Henry V. Doctor
Navrongo Health Research Centre
P.O. Box 114
Navrongo, Upper East Region
GHANA
tel/fax: +233 (0)742 22320; cell: +233(0)244 433706
********************************************************
-----Original Message-----
From: Nick Cox [mailto:[email protected]]
Sent: 26 April 2004 10:57
To: [email protected]
Subject: st: RE: creating age at first birth from birth history data
I'll guess at your data structure. If this
isn't correct, you may need to say more
about it.
I assume some identifier variable
and a variable containing dates of birth
of children, as in
mother birthdate
1 1feb2001
1 1mar1999
1 4jul1996
1 28feb1994
2 2nov2003
2 etc.
3
3
3
3
I also assume -birthdate- is a Stata
elapsed date.
Your problem at its simplest is that
the birthdates are in the reverse order
fom what you want.
bysort mother (birthdate) : gen first = birthdate[1]
will generate a variable with firstbirths from
these data. The same value of -first- will be
repeated for each -mother-. To get the age
of the mother at the first birth, you may
need to subtract the mother's date of birth,
possily in another variable.
Nick
[email protected]
Henry DOCTOR
> I need to create a variable called "age at first birth"
> for women from birth history data. The variable has information
> for births beginning with the last child (most recent birth)
> to the first child (first pregnancy). So, every woman has n
> children and the last (nth child) in the data is the first born.
> I want to reverse this so that the variable gives me the nth
> child for every woman as the first born.
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/