9

私は Statadoファイルを作成していますが、ユーザーがいくつかのパラメーターを指定しない場合にデフォルト値を提供したいと考えています。そのために、マクロが未定義かどうかを確認したいと思います。

これを行うためのハックな方法を思いつきました:

*** For a local macro with the name value:
if `value'1 != 1 {
    ...do stuff
}

しかし、これを行う慣用的な方法があるかどうか知りたいです。

4

3 に答える 3

9

未定義の場合、マクロの内容は空になります。あなたはこれを行うことができます:

if missing(`"`mymacroname'"') {
    display "Macro is undefined"
}

マクロに数値が含まれる場合、引用符は必要ありません。このmissing(x)関数は、文字列と数値を処理できます。テストのようなものです。(x=="" | x==.)配置`'する"`mymacroname'"と、マクロに引用符を含めることができますlocal mymacroname `"foo"' `"bar"'

于 2011-03-07T18:47:51.003 に答える
7

質問は、これを行うための慣用的な方法と、Stata プログラマーの間で求められました。

 if "`macroname'" != "" 

マクロが定義されているかどうかの最も一般的に使用されるテストです。マクロは、定義時に文字列を含みます。これが一般的な使用法です。数字の使用は特殊なケースです。

于 2013-07-06T10:38:27.197 に答える