Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: RE: RE: Identifying the nearest observation in a household survey


From   "Scott Merryman" <smerryman@kc.rr.com>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: RE: RE: Identifying the nearest observation in a household survey
Date   Thu, 21 Apr 2005 14:41:26 -0500

> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-
> statalist@hsphsun2.harvard.edu] On Behalf Of Richard Palmer-Jones
> Sent: Thursday, April 21, 2005 11:44 AM
> To: statalist@hsphsun2.harvard.edu
> Subject: st: RE: RE: Identifying the nearest observation in a household
> survey
> 
> This won't work if you have more than one child per previous parent.

I am not sure I understand; the parent is flagged only if the age >= 18, it
has the same serial # (thanks Nick), and the following observation is a
flagged a child.

Suppose we have two households:

. l , ab(32) noobs sepby(ser)

  +-----------------------------------------+
  |  serial   related   age   sex   marital |
  |-----------------------------------------|
  | 2411276      Head    88     F     widow |
  | 2411276     Other    49     M    single |
  | 2411276     Other    49     M   married |
  | 2411276     Other    42     F   married |
  | 2411276     Other     6     F    single |
  | 2411276     Other    68     F     widow |
  | 2411276     Other    58     M     widow |
  |-----------------------------------------|
  |       1      Head    88     F     widow |
  |       1     Other    49     M    single |
  |       1     Other    49     M   married |
  |       1     Other    42     F   married |
  |       1     Other     6     F    single |
  |       1     Other     5     F    single |
  |       1     Other     4     F    single |
  |       1     Other    58     M     widow |
  |       1     Other    20     F    single |
  |       1     Other     1     F    single |
  +-----------------------------------------+

. mark child if age <18

. mark parent_of_child if age>=18 & child[_n+1] == 1 & serial ==
serial[_n+1]

. l , ab(32) noobs sepby(ser)

  +-------------------------------------------------------------------+
  |  serial   related   age   sex   marital   child   parent_of_child |
  |-------------------------------------------------------------------|
  | 2411276      Head    88     F     widow       0                 0 |
  | 2411276     Other    49     M    single       0                 0 |
  | 2411276     Other    49     M   married       0                 0 |
  | 2411276     Other    42     F   married       0                 1 |
  | 2411276     Other     6     F    single       1                 0 |
  | 2411276     Other    68     F     widow       0                 0 |
  | 2411276     Other    58     M     widow       0                 0 |
  |-------------------------------------------------------------------|
  |       1      Head    88     F     widow       0                 0 |
  |       1     Other    49     M    single       0                 0 |
  |       1     Other    49     M   married       0                 0 |
  |       1     Other    42     F   married       0                 1 |
  |       1     Other     6     F    single       1                 0 |
  |       1     Other     5     F    single       1                 0 |
  |       1     Other     4     F    single       1                 0 |
  |       1     Other    58     M     widow       0                 0 |
  |       1     Other    20     F    single       0                 1 |
  |       1     Other     1     F    single       1                 0 |
  +-------------------------------------------------------------------+


Scott


> You can identify children, then loop back observation by observation till
> you get to a likely parent - though identifying them may be difficult and
> unclear (guardians) - and watch out for child headed households? With a
> health warning:
> gen parent = .
> gen child if age < 18
> qui des
> foreach i in 1/r(N) {
> 	if child == 1 {
> 		local j = 1
> 		local parent = 0
> 		while `parent' < 1 {
> 			if age[`i' - `j'] = [condition for parent - your
> business]
> 				parent[`i'] = serial[`i'-`j'] * 100 +
> pernum[`i'-`j']
> 				local parent = 1
> 			}
> 			local ++j
> 		}
> 	}
> }


*
*   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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index