2013-06-23 15 views
1

我試圖動態創建的當地人,並通過一個新的變量如何在Stata上實時創建當地人?

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' 
+0

令人驚訝的是,'recode'容忍「」。我不知道第二個陳述中的錯誤是什麼。 –

回答

1

明確的是,你的local小號必須在同一個名字空間中,即交互式會話,do-file,do-file編輯器,程序。要進行調試,請輸入

macro li 

recode語句之前查看哪些宏是可見的。

+0

1)'val_GA'是一個錯字,我是從51個州複製的,我在這個問題上已經糾正過。 2)但是,本地'val_AL'包含一個值,我檢查它:display「'val_AL'」,它是563.23。爲什麼我不能這樣做:recode sampleVar。='val_AL'? –

+0

另一個錯字,我想。正如已經指出的那樣,應該是'\'val_AL''。 –

+0

你真的想用2012年的阿拉斯加值替換所有缺失的值嗎? –

相關問題