Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: st: have string macro default in syntax
From
tashi lama <[email protected]>
To
<[email protected]>
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: [email protected]
> To: [email protected]
>
> 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 <[email protected]> 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: [email protected]
>>> To: [email protected]
>>>
>>> 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 <[email protected]> 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/