Stata:使用forvalue循环标记变量

时间:2017-02-04 20:03:33

标签: stata

我正在尝试使用循环标记一批变量,如下所示,但是因stata错误而失败"语法无效"。我无法找出哪里出了问题。

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'"
}

1 个答案:

答案 0 :(得分: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'"
}

问题在于外部" "被剥离以定义您的本地,因此为了保持" "所需,您需要将每个字符串包装在复合双引号内。

有关解释,请参阅http://www.stata.com/manuals14/u12.pdf 12.4.6。

挑剔纠正:拼写是经度