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

Stata ado程序中可选字符串选项的默认值,stata,Stata,我编写了一个.ado程序来生成一个新变量。我想喝一杯 附加到新变量的默认后缀,但允许用户指定 后缀也就是说,默认情况下,将\u tr附加到原始变量的名称中,但是 允许使用用户指定的后缀,例如\u tr1pt 这在语法中可能吗 我的语法行如下 syntax varlist [if] [in] /// [, Byvar(varlist) Tail(real 1) /// Suffix(string) noRelabel] clonevar `x'_`suffix' = `x' //

我编写了一个.ado程序来生成一个新变量。我想喝一杯 附加到新变量的默认后缀,但允许用户指定 后缀也就是说,默认情况下,将
\u tr
附加到原始变量的名称中,但是 允许使用用户指定的后缀,例如
\u tr1pt

这在
语法中可能吗

我的
语法
行如下

syntax varlist [if] [in] ///
    [, Byvar(varlist) Tail(real 1) ///
    Suffix(string) noRelabel]
clonevar `x'_`suffix' = `x' ///
    if `thisuse' & inrange(`pct', `tail', 100 - `tail')
后缀将在程序中应用,如下所示

syntax varlist [if] [in] ///
    [, Byvar(varlist) Tail(real 1) ///
    Suffix(string) noRelabel]
clonevar `x'_`suffix' = `x' ///
    if `thisuse' & inrange(`pct', `tail', 100 - `tail')
我尝试了
后缀(string tr)
后缀(string“tr”)
,但这些都是语法 错误。我想我不能有一个选项的默认参数(而且我找不到) 任何关于字符串选项默认值的信息(在任何情况下)


有没有办法给本地宏
后缀
一个默认值

是的。您可以将
后缀(字符串)
声明为一个选项,然后在
语法之后

if "`suffix'" == "" local suffix "_tr"
如果用户没有指定参数,则本地宏
后缀
将为空,您可以定义它应该是什么。这是默认值

我不知道为什么
语法
不允许这样做,但我认为这是标准过程,因为它不允许这样做