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

RE: st: counting

From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   RE: st: counting
Date   Sun, 8 Feb 2004 17:11:06 -0000

Amit Khandelwal 

> Suppose I have 5 states and I want to count the number of 
> children in each state. How can I do this without generating a new 
> variable. If I do 
> by state: count if child==1
> then r(N) only stores the last state's result.

Various people were unclear what Amit really wants. 
They, however, suggested 

-tabulate- (Chris Wallace) 
-tabstat- (Scott Merryman, Kit Baum) 
Philip Ryan suggested 

> Here is one approach:
> gen num_kids = .
> levels state, local(slevels)
> foreach s of local slevels {
> count if state ==`s' & child == 1
> replace num_kids = `r(N)' if state ==`s'
> }
> ... and then you can play around with the variable num_kids.
> Note that this depends on (i) state being a numeric variable 
> (if it is a 
> string, then either first -encode- it or else enclose the two 
> instances of `s' 
> in my code with double quotes: "`s'") and, especially, (ii) 
> on the meaning of 
> the child variable in your data. 
> Whether the specific code above is correct for your situation 
> is probably less 
> relevant than that -help levels- and -help foreach-  are 
> often good places to 
> start in problems like these.

That's true. But in this case 

egen num_kinds = sum(child == 1), by(state) 

is equivalent to Phil's code. 

[email protected] 

*   For searches and help try:

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