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

From |
"Martin Weiss" <martin.weiss1@gmx.de> |

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

Subject |
AW: st: AW: count with a loop |

Date |
Fri, 18 Dec 2009 15:29:58 +0100 |

<> To answer this conclusively, we need an excerpt of your data. Still, it is clear that you do not want the same index "i" for both the condition put on time and the one on the region. Quite apart from this problem, the comparison for the -if- qualifier should be written with a double equal sign, as in ************* sysuse auto, clear cou if rep78 ==2 ************* So I am a little surprised that your code worked at all, because with a single equal sign, error code 101 "=exp not allowed" should result... HTH Martin -----Ursprüngliche Nachricht----- Von: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von LY Pierrem Gesendet: Freitag, 18. Dezember 2009 15:26 An: statalist@hsphsun2.harvard.edu Betreff: Re : st: AW: count with a loop My apologies for the delayed follow up. Thank you for the suggested code and useful stata journal references. The code seems to do what I want indeed, thanks! Now, I tried to add one more condition on the count, but it seems i am not putting it in the right place (cause it then counts things wrong). For example, counting the people who meet the already suggested timefunded<timeposted[`i'], but also who are, say, of the same region. so I tried to expand one line under the forval: qui cou if timefunded<timeposted[`i'] & region=region[`i'] in 1/`i' but it ends up counting ALL the people of the same region, not just the people of the same region also meeting the first condition. Is there a place to add correctly this in the same code? Thanks again, your code and reading suggestions are invaluable. Pierre --- En date de : Mer 16.12.09, Martin Weiss <martin.weiss1@gmx.de> a écrit : > De: Martin Weiss <martin.weiss1@gmx.de> > Objet: st: AW: count with a loop > À: statalist@hsphsun2.harvard.edu > Date: Mercredi 16 Décembre 2009, 9h34 > > <> > > Try this very carefully to see whether it does what you > want: > > ************* > clear* > > inp byte personid str20(dateposted datefunded) > 1 "2009-04-04 3:20:08" "2009-04-04 10:00:14" > 2 "2009-04-04 5:20:08" "2009-04-04 11:02:14" > 3 "2009-05-04 2:20:08" "2009-05-04 11:02:14" > 4 "2009-05-04 2:20:02" "2009-05-04 11:02:17" > 5 "2009-05-04 2:12:02" "2009-05-04 11:04:17" > end > > compress > > > gen double timeposted= clock(dateposted, "YMDhms") > gen double timefunded= clock(datefunded, "YMDhms") > > format timeposted timefunded /* > */ %tcMon_DD,_CCYY_HH:MM:SS > > drop date* > > //maximum possible > sort timeposted > gen count=_n-1 > > //check second condition > //conditional on first being met > forv i =1/`=_N'{ > qui cou if timefunded<timeposted[`i'] > in 1/`i' > replace count=count-`r(N)' in `i' > } > > li, noo > ************* > > > > HTH > Martin > > -----Ursprüngliche Nachricht----- > Von: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] > Im Auftrag von LY Pierrem > Gesendet: Mittwoch, 16. Dezember 2009 09:16 > An: statalist@hsphsun2.harvard.edu > Betreff: st: count with a loop > > Dear Stata list, > > I have a data set that looks like this > > personid > dateposted datefunded > 1 2009-04-04 3:20:08 > 2009-04-04 10:00:14 > > 2 > > > > I am trying to create a new variable, which for each person > n, would > count the number of people such that 1. they were posted > before person > n AND 2. were funded after person n was posted. In other > words, this would > count the number of people active (i.e. posted but not yet > funded) on the > database at the time each person n is posted. > > It seems that a simple egen and conditional count are not > good enough for > the purpose. > > Is a loop necessary for this? I have an idea that a loop is > needed here > (maybe using forval?) but any help would be greatly > appreciated! > > Thanks for any suggestions! > Pierre > > > > > * > * 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/ > > > * > * 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/ > * * 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/ * * 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: AW: count with a loop***From:*"Martin Weiss" <martin.weiss1@gmx.de>

**Re : st: AW: count with a loop***From:*LY Pierrem <lypierrem@yahoo.fr>

- Prev by Date:
**RE: Re : st: AW: count with a loop** - Next by Date:
**st: svy tab and lincom** - Previous by thread:
**RE: Re : st: AW: count with a loop** - Next by thread:
**st: PCA vs. Factor Loadings** - Index(es):

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