Stataでマクロを作成しようとしています。このマクロは、後で私のdo-fileで参照する変数名を設定するため、変数名をローカルマクロに置き換えようとしています。変数を参照するローカルマクロを使用するにはどうすればよいですか?
例のデータは次のとおりです。
ID Indicator1 Indicator2 Amount
1 1 0 10
2 0 1 2
3 0 0 3
4 1 0 5
5 1 1 20
私のデータは、指標の数を持っています。しかし、私は一度に1つのインジケータだけで作業する必要があります。だから私は現在作業中のインジケータをマクロに入れて、コード全体で1つだけ変更する必要があります。私のコードは次のとおりです。
local myvar = "Indicator"
私が欲しいのは、このようなものを使用することができることです。しかし
sum Amount if "`myvar'" == 1
、私が定義されてい"type mismatch"
にもmyvar
かかわらというエラーを得続けます。名前myvar
とローカルマクロ内のリテラルテキストIndicator
を置くこれら
local myvar "Indicator"
または
local myvar = "Indicator"
または
local myvar Indicator
のいずれかを入力して
ありがとうございます。 '' myvar '== 1'で、今回エラーが定義されていても '== 1 invalid name'と表示されていればsum Amountを使ってみました。 – Kany
おそらく、その時点でローカルマクロが表示されていないことを意味します。これは、doファイルをチャンクで実行することによる共通の副作用です。一度に1行。ローカルとは、それが言うことを意味します:ローカル(コードの塊)。テストするには、使用する前にマクロを表示させてください: 'macro list'はそれを行うか、' di "\' myvar '"'を実行します。対処法は、ファイルをチャンクで実行することではなく、 'local'定義が確実に見えるようにすることです。 –
大丈夫。問題は、私はチャンクでdoファイルを実行していたことです。それは今働く。 :) – Kany