2017-02-04 70 views
1

我試圖標記一批使用循環如下變量標籤的變量,但未能與STATA錯誤「無效語法」。我找不到哪裏出了問題。塔塔:使用forvalue循環

local myvars "basicenumerator" "basicfr_gpslatitude" "basicfr_gpslongitude" 

local mylabels "Name of enumerator" "the latitude of the farmers house" "the longtitude of the farmers house" 

local n : word count `mylabels' 

forvalues i = 1/`n'{ 
    local a: word `i' of `mylabels' 
    local b: word `i' of `myvars' 
    label var `b' "`a'" 
} 

回答

0

爲了調試這個,主要的技巧是讓Stata向你展示它認爲本地宏是什麼。該腳本使你的代碼重現性好,還修復它。

clear 
set obs 1 
gen basicenumerator = 42 
gen basicfr_gpslatitude = 42 
gen basicfr_gpslongitude = 42 

local myvars `" "basicenumerator" "basicfr_gpslatitude" "basicfr_gpslongitude" "' 

local mylabels `" "Name of enumerator" "the latitude of the farmers house" "the longtitude of the farmers house" "' 

local n : word count `mylabels' 

mac li 

forvalues i = 1/`n'{ 
    local a: word `i' of `mylabels' 
    local b: word `i' of `myvars' 
    label var `b' "`a'" 
} 

的問題是,外" "獲得剝奪定義你的本地人,所以要保持" "根據需要,你需要用複合雙引號內的每個字符串。

有關說明,請參見12.4.6 http://www.stata.com/manuals14/u12.pdf

挑剔的修正:拼寫經度

+0

它的工作!感謝您的及時迴應! –