Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | William Buchanan <william@williambuchanan.net> |
To | "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |
Subject | Re: st: forvalues |
Date | Tue, 23 Oct 2012 06:21:06 -0700 |
Except for the suggestion of posting with your full name that is ;). Billy Buchanan Sent from my iPhone On Oct 23, 2012, at 6:15, - <dimpol7@googlemail.com> wrote: > Thank you for this, > it is working now using levelsof, as I wrote above, but I will try > your suggestion as well. > > thanks again > > On 23 October 2012 14:11, Nick Cox <njcoxstata@gmail.com> wrote: >> dimpol7 asked what he or she is doing wrong. >> >> First off, as already pointed out to dimpol7, we ask for full real >> names on Statalist. See my posting replying to dimpol7 on 12 October. >> >> Second off, >> >> forvalues i = 1/53 { >> tabstat age if single=='i', by(sexcat) stats(mean sd n min max >> median p10 p25 p75 p90) >> } >> >> will fail if there are _any_ value of -single- in 1/53 for which there >> are no observations. Stata is disagreeing with you on that, but all my >> money is on Stata being right and you being wrong here. >> >> I suggest that you try >> >> di "`i'" >> capture noisily tabstat age if single=='i', by(sexcat) stats(mean sd n >> min max median p10 p25 p75 p90 >> >> A line displaying which value this is going to be needed to >> distinguish the tables. -capture noisily- will proceed past any >> errors. >> >> Nick >> >> >> On Tue, Oct 23, 2012 at 1:14 PM, - <dimpol7@googlemail.com> wrote: >>> It still won't do it, it says "no observations", but there are >>> observations there... >>> >>> On 23 October 2012 13:09, Henrik Støvring <STOVRING@biostat.au.dk> wrote: >>>> Your accents are off. You need to replace 'i' with `i' - note the >>>> difference in the first accent. >>>> >>>> Best, >>>> >>>> Henrik >>>> >>>> On 10/23/2012 02:04 PM, - wrote: >>>>> hello all, >>>>> I'm trying to build a simple loop, and have looked at Help for >>>>> "foreach" and "forvalues", but can't get it to work. I just want to >>>>> set a variable i to take consecutive values from 1 to 53, so use >>>>> forvalues i=1/53, then give its value to a variable in my data called >>>>> "single" (refers to the number of samples for each person) which has >>>>> integer values ranging from 1 to 53, and create tables of statistics >>>>> for age in men and women. So there would be 53 tables of ages, one for >>>>> each number of samples, summarized by sex. >>>>> Haven't use loops in stata before, I write: >>>>> >>>>> forvalues i = 1/53 { >>>>> 2. tabstat age if(single=='i'), by(sexcat) stats(mean sd n min max >>>>> median p10 p25 p75 p90) >>>>> 3. } >>>>> >>>>> but the message is that 'i' is an invalid name. If I use >>>>> if(single==i), it says "i not found". Can anyone tell me what I'm >>>>> doing wrong? >> >> * >> * For searches and help try: >> * http://www.stata.com/help.cgi?search >> * http://www.stata.com/support/faqs/resources/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/faqs/resources/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/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/