1

その場でローカルを作成し、新しい変数に値を代入してチェックしようとしています

gen sampleVar =.

foreach i in AK AL  AR  AZ {
 su income if (year==2012 & state_nsw == "`i'"), meanonly
local val_`i' = r(mean)
display "`val_`i''"
}

 // check the local
 recode sampleVar .= "`val_AL'" 
 // this is what I get:
 5242.57421875
 .....
 5352.66796875
 . invalid name
 r(198);

 // check 2 the local
 recode sampleVar .= `val_AL'  // error

回答:私の問題は、私が試したことです

 recode sampleVar .= `val_AL' + `val_AZ'
// this is inappropriate.
//the correct way is:
local try = `val_AL' + `val_AZ'
recode sampleVar .= `try'
4

1 に答える 1

1

locals が同じ名前空間 (つまり、対話型セッション、do ファイル、do ファイル エディター、プログラム) にある必要があることを明確にしてください。デバッグするには、次のように入力します

macro li 

ステートメントの前に、recodeどのマクロが表示されているかを確認します。

于 2013-06-23T23:39:32.157 に答える