Loops 在Stata中的循环内运行程序
我试图在循环中运行一个程序,但是我得到了Loops 在Stata中的循环内运行程序,loops,stata,Loops,Stata,我试图在循环中运行一个程序,但是我得到了 -Break-- r(1); 这是我的剧本: clear all forvalues i=1/5{ sysuse auto if rep78==`i' capture program drop testpro program define testpro,eclass preserve tabstat price mpg headroom,stat(mean) save mat avg=r(
-Break--
r(1);
这是我的剧本:
clear all
forvalues i=1/5{
sysuse auto if rep78==`i'
capture program drop testpro
program define testpro,eclass
preserve
tabstat price mpg headroom,stat(mean) save
mat avg=r(StatTotal)
ereturn post avg
restore
end
}
--Break--
r(1);
end of do-file
--Break--
r(1);
我们将非常感谢您在这方面提供的任何帮助。这里有几个问题。首先,与使用
use
不同,不能使用if
子句sysuse
无需在循环的每次迭代中重新定义程序。定义它,然后循环
我也不知道你为什么需要一个程序,但这是一个品味的问题,或者这仅仅是一个教学的例子
下面代码中的命令estadd
是SCC中的estout
套件的一部分
clear all
capture program drop testpro
program define testpro, eclass
tabstat price mpg headroom, stat(mean) save
quietly estadd matrix avg = r(StatTotal), replace
end
forvalues i=1/5 {
sysuse auto, clear
keep if rep78==`i'
testpro
matrix list e(avg)
}
是的,我的问题需要一个程序。谢谢!