# RE: st: row-level counting command?

 From "Nick Cox" <[email protected]> To <[email protected]> Subject RE: st: row-level counting command? Date Sun, 30 Jan 2005 17:22:24 -0000

```I support Friedrich Huebler's
good advice to consider -reshape-.

The idea of looping across variables
is not crazy; nevertheless -for- is a
very old-fashioned way to do it and
now officially deprecated.

-egen, rcount()- is a little old in the tooth
and predates -foreach- and -forval-.

gen age_is_15 = 0
forval i = 1/80 {
replace age_is_15 = age_is_15 + (age`i' == 15)
}

is likely to be faster than the -for- or using
-egen, rcount()-, and only the one new variable
is needed.

Nick
[email protected]

Richard Goldstein

> Yes, there is an egen rcount command, in the egenmore package
> (available via
> ssc) that allows you to count using such a condition

David K Evans wrote:

> > I have a household data set with the up-to 80 members of
> the household
> > listed horizontally, with each household being one
> observation. So, for
> > example, the ages of household members 1, 2, and 3 are in
> the following
> > variables:  age_1 age_2 age_3 ...
> >
> > I want to create a variable that tells the number of people
> aged 15 in the
> > household.
> >
> > One (very slow) way to do this is to create a loop and go
> through each of
> > the 80 people, then use robs:
> >
> > for num 1/80: gen age15_X=1 if age_X==15
> > egen num_people_age15=robs(age15_*)
> >
> > The problem with this is that it's so inefficient. Has
> anyone written a
> > command like "egen =robs" but that counts observations that
> satisfy a
> > certain condition rather than merely non-missing observations?

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