.ado程序中可选字符串选项的默认值

时间:2013-09-01 17:47:19

标签: stata

我写了一个生成新变量的.ado程序。我想要一个 默认后缀附加到新变量,但允许用户指定 后缀。也就是说,默认情况下会将_tr附加到原始变量的名称,但是 允许用户指定的后缀,例如_tr1pct

syntax这可能吗?

我的syntax行如下。

syntax varlist [if] [in] ///
    [, Byvar(varlist) Tail(real 1) ///
    Suffix(string) noRelabel]

后面的程序后缀将在后面应用。

clonevar `x'_`suffix' = `x' ///
    if `thisuse' & inrange(`pct', `tail', 100 - `tail')

我尝试了Suffix(string tr)Suffix(string "tr"),但这些都是语法 错误。我想我不能有一个选项的默认参数(我找不到 任何关于字符串选项默认值的事情,无论如何)。

有没有办法让本地宏suffix成为默认值?

1 个答案:

答案 0 :(得分:3)

是。您可以将Suffix(string)声明为选项,然后在syntax之后

if "`suffix'" == "" local suffix "_tr"

如果用户未指定参数,则本地宏suffix将为空,您可以定义它应该是什么。这是默认值。

我不知道syntax不允许这样做的原因,但我认为这是标准程序,因为它没有。