[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
"Nick Cox" <n.j.cox@durham.ac.uk> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: count (Stata 8) |

Date |
Tue, 10 May 2005 20:02:27 +0100 |

I'm on record as a big fan of -foreach- but this problem doesn't seem to need a loop at all. Nevertheless, you want scalars, although I am not clear why. You can have it both ways by having variables and scalars too. (The variables will come in useful for graphs and tables.) egen cases = sum(dflag), by(year) egen n = sum(1), by(year) gen prevalence = cases / n tabdisp year, c(prevalence) levelsof year, local(Y) foreach y of local Y { su prev if year == `y', meanonly scalar prev`y' = r(min) } Nick n.j.cox@durham.ac.uk Heather Gold > Thanks for the replies thus far. > I'd prefer a scalar so I don't have to generate the extra > variables with a > value attached to each subject. > > Based on all the comments you have generously offered, I'm > closer to a > solution: > > forvalues i=1995/1998 { > count if dxflag==1 & year==`i' > scalar cases`i' = r(N) > count if year==`i' > scalar total`i' = r(N) > scalar prev`i' = cases`i'/total`i' > } > The problem is this doesn't give me different denominators > (ie, total for > each year)...thoughts? > Heather > > >-------Original Message------- > > > >>Dear Listers - > >> > >>I know this must be simple, but something eludes me. > >>I have a data set of subjects (cases and non-cases) by year > and am trying > >>to calculate a prevalence per year, ie, [cases/(cases+noncases)]. > >>ie, data look like this: > >>id year dxflag > >>1 1995 1 > >>1 1996 0 > >>1 1997 0 > >>2 1995 0 > >>2 1996 1 > >>... > >> > >>I found that I can write > >>by year: count if dxflag==1 > >>or > >>by year: count > >> > >>and these return number of cases in the first line, and > count of total > >>population in the second line, just as I want. > >>But what I need are these values as scalars, so I can > create a prevalence > >>per year. In the Stata 8 help/manual it says that -count- saves the > >>scalar of number of observations in r(N), but I can't seem > to get this > >>number to appear. Do I actually have to write a program to > calculate > >>this? And how does the "by year" part fit in...? * * 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/

**Follow-Ups**:**RE: st: count (Stata 8)***From:*Heather Gold <heg2001@med.cornell.edu>

- Prev by Date:
**st: RE: [8] -set varabbrev off- fails for _b[]** - Next by Date:
**Re: st: Launching Stata 9 from do files as -doedit-** - Previous by thread:
**RE: st: count (Stata 8)** - Next by thread:
**RE: st: count (Stata 8)** - Index(es):

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