2

新しい変数を生成する .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ローカル マクロにデフォルト を与える方法はありますか?

4

1 に答える 1

3

はい。Suffix(string)オプションとして宣言してからsyntaxgoすることができます

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

ユーザーが引数を指定しなかった場合、ローカル マクロsuffixは空になり、何をすべきかを定義します。それがデフォルトです。

これが許可されない理由はわかりませsyntaxんが、許可されていないことを考えると、これが標準的な手順であると考えています。

于 2013-09-01T18:08:15.343 に答える