Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

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

From |
Maarten Buis <maartenlbuis@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: _N in by-groups |

Date |
Fri, 19 Aug 2011 10:20:52 +0200 |

See -help byable-: With the -recall- the -by-ing- is done through -marksample- and -if-, so within that program _N is, and should be, the numer of observations in the entire dataset. If you want the number of observations within your group you need to type: marksample touse qui count if `touse' local Nby = r(N) Hope this helps, Maarten On Fri, Aug 19, 2011 at 9:41 AM, Matthew White wrote: > So if I execute: > sysuse auto > bys foreign: drop if _n == _N > Then two observations are dropped because _N is the number of > observations in the by-group. > > But in this (admittedly silly) example, _N seems to be the number of > observations in the data set: > program dispby, byable(recall) > disp `0' > end > sysuse auto > bys foreign: dispby _N > Both times 74 is displayed, instead of 52 in the first by-group and 22 > in the second. > > Thanks, > Matt > > On Fri, Aug 19, 2011 at 10:07 AM, Maarten Buis <maartenlbuis@gmail.com> wrote: >> On Fri, Aug 19, 2011 at 2:21 AM, Matthew White wrote: >>> If a Stata command has by-groups, it seems like _N is interpreted >>> sometimes as the number of observations in the by-group and sometimes >>> as the number of observations in the data set. >> >> If you use the -by :- prefix it is always defined as the number of >> observations within each by-group. Stata would be a pretty lousy >> program if such a scalar randomly changed meaning... >> >> If you want the total number of observations than I would just do: >> >> local Ntot = _N >> >> or inside a program that previously used -marksample-: >> >> count if `touse' >> local Ntot = r(N) >> >> later you do >> >> by <somevar> `touse' : <something using _N and `Ntot'> if `touse' >> >> Hope this helps, >> Maarten >> >> -------------------------- >> Maarten L. Buis >> Institut fuer Soziologie >> Universitaet Tuebingen >> Wilhelmstrasse 36 >> 72074 Tuebingen >> Germany >> >> >> http://www.maartenbuis.nl >> -------------------------- >> * >> * 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/ >> > > > > -- > Matthew White > Evaluation Coordinator > Urban Micro-Insurance Project > Innovations for Poverty Action > > +254 (0)701 025 276 > mwhite@poverty-action.org > > * > * 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/ > -- -------------------------- Maarten L. Buis Institut fuer Soziologie Universitaet Tuebingen Wilhelmstrasse 36 72074 Tuebingen Germany http://www.maartenbuis.nl -------------------------- * * 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/

**References**:**st: _N in by-groups***From:*Matthew White <mwhite@poverty-action.org>

**Re: st: _N in by-groups***From:*Maarten Buis <maartenlbuis@gmail.com>

**Re: st: _N in by-groups***From:*Matthew White <mwhite@poverty-action.org>

- Prev by Date:
**Re: st: _N in by-groups** - Next by Date:
**Re: st: _N in by-groups** - Previous by thread:
**Re: st: _N in by-groups** - Next by thread:
**Re: st: _N in by-groups** - Index(es):