Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | tashi lama <ltashi32@hotmail.com> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | RE: st: have string macro default in syntax |
Date | Tue, 25 Sep 2012 20:44:58 +0000 |
Thanks ---------------------------------------- > Date: Tue, 25 Sep 2012 18:53:17 +0100 > Subject: Re: st: have string macro default in syntax > From: njcoxstata@gmail.com > To: statalist@hsphsun2.harvard.edu > > I didn't make myself clear. > > The question is how does your program -hh- know the variable names? > There are two, because -by()- needs a variable name too. > > If you are hard-wiring names into -hh-, you are going to need to edit > the program for each new use. > > On the other hand, if there is extra code in your real program that > reads in variable names, then that's fine, except that we can't tell > that from your post. > > Note that -bu()- here is a typo for -by()-. If that's in your real > code, it's a bug. Also, this code won't work because of a mismatch > between -firm()- and -stat()-. > > Nick > > On Tue, Sep 25, 2012 at 6:40 PM, tashi lama <ltashi32@hotmail.com> wrote: >> Thanks. To the last comment, I am using odbc to get the varnames. I decided not putting in the question to be concise. I was actually trying to avoid 'if' somethng like we do for integers i.e. [firm(int -1)] . I had done something like this prior to posting. At least, the way you suggested makes my code shorter. >> >> syntax, [firm(str)] >> if "`stat'"!="" { >> graph pie varname, by(varname) plabel(_all `stat') >> } >> else { >> graph pie varname, bu(varname) plabel(_all percent) >> } >> >> Thanks, >> Tashi >> >> >> ---------------------------------------- >>> Date: Tue, 25 Sep 2012 15:12:18 +0100 >>> Subject: Re: st: have string macro default in syntax >>> From: njcoxstata@gmail.com >>> To: statalist@hsphsun2.harvard.edu >>> >>> This is easy; just not easy with -syntax- alone. >>> >>> Note that this discussion is one where the distinction between syntax >>> in general and the command -syntax- helps clarity considerably. That >>> is to say, the Statalist -cmdname- convention is not designed to be >>> fussy or a trap for new users, but an aid to comprehension. >>> >>> syntax [, stat(str)] >>> if "`stat'" == "" local stat "percent" >>> >>> This achieves the same goal; if the user specified nothing the default >>> is "percent". >>> >>> Note that the option -stat()- must be made genuinely optional; if it >>> is compulsory there can be no question of a default. >>> >>> I leave on one side the questions of where your program gets its >>> variable names from and why pie charts are anybody's default! >>> >>> Nick >>> >>> On Tue, Sep 25, 2012 at 2:40 PM, tashi lama <ltashi32@hotmail.com> wrote: >>>> >>>> I looked through the documentation for syntax. I don't think stata can do this but I would like to post anyway... >>>> >>>> here is my adofile >>>> /*begin hh.ado*/ >>>> >>>> program hh >>>> syntax, stat(str) >>>> ....... >>>> graph pie varname, by(varname) plabel(_all `stat') >>>> end >>>> >>>> hh, stat(sum) will give me sum >>>> hh, stat(percent) will give me percent >>>> >>>> I would like to( if possible) have hh draw a pie chart with "percent" as default and draw "sum" if included in the arguments. Something like this.... >>>> >>>> hh //give me percent by default >>>> hh, stat(sum) //give me sum >>>> >>>> Can stata do this?? Any help will be appreciated// > > * > * 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/