Stata:在egen函数中有例外的通配符

时间:2014-04-10 20:47:32

标签: function stata

我是使用宏的新手,我希望将此"Wildcard with exceptions" syntax合并到Stata 12中的egen函数中。我想按照以下方式做一些事情:

foreach i in E F G {
    unab all`i' : V_`i'*
    unab excl`i' : V_`i'9*
    local general`i' : list all`i' - excl`i'
} 

egen Exp_operating = rowtotal(`generalE')
egen Exp_capital = rowtotal(`generalF' `generalG') 

简而言之,我想创建一个排除变量V_E*的{​​{1}}变量列表,然后创建一个变量,该变量等于每个观察列表中每个变量的总和。但是,执行V_E9*命令后出现语法错误。有人可以帮我弄清楚如何做我想做的事吗?

1 个答案:

答案 0 :(得分:1)

一些技术代码:

clear all
set more off

*----- example data -----

set obs 1

gen V_E1 = 1
gen V_E2 = 2
gen V_E22 = 2
gen V_E3 = 3

gen V_F1 = 3
gen V_F2 = 4
gen V_F22 = 4
gen V_F3 = 5

*----- what you seek -----

foreach i in E F {
    unab all`i' : V_`i'*
    unab excl`i' : V_`i'2*
    local general`i' : list all`i' - excl`i'
} 

* display contents of macros 
display "`generalE'"
display "`generalE' `generalF'"

* sum of V_E1 V_E3
egen Exp_operating = rowtotal(`generalE')

* sum of V_E1 V_E3 V_F1 V_F3
egen Exp_capital = rowtotal(`generalE' `generalF') 

list

使用display检查宏的内容,然后再将其传递给egen