我写了一个生成新变量的.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
成为默认值?
答案 0 :(得分:3)
是。您可以将Suffix(string)
声明为选项,然后在syntax
之后
if "`suffix'" == "" local suffix "_tr"
如果用户未指定参数,则本地宏suffix
将为空,您可以定义它应该是什么。这是默认值。
我不知道syntax
不允许这样做的原因,但我认为这是标准程序,因为它没有。