【发布时间】:2015-07-06 23:41:36
【问题描述】:
像许多其他人一样,我经常在 Stata 中遍历变量,运行一些估计命令,然后将结果提取到为保存它们而创建的变量中。当变量按顺序编号或以某种模式编号(例如一组中的偶数)时,这很简单。举个例子:
sysuse auto
gen var1 = uniform()
gen var2 = uniform()
gen var3 = uniform()
*Create variables to hold results
gen str4 varname=""
gen results=.
*Loop through three variables
foreach i of numlist 1/3{
replace varname="var`i'" in `i'
sum var`i'
replace results=r(mean) in `i'
}
但是,当变量不是数字和/或不是易于处理的顺序时,我经常想做类似的事情。假设我想对自动数据集中的price、mpg、weight 和length 做同样的事情。如果我们将 for 循环设置为:
sysuse auto
gen str4 varname=""
gen results=.
foreach var of varlist price mpg weight length{
sum `var'
*Place values, in order, in rows?
}
那么我们需要一些方法来理解price 是列表中的第一个变量,所以它的结果应该放在第 1 行(或者它的名字放在第 1 行,或者我们想要做的任何事情)。
这一定是可能的,但我会很感激一些建议。一种干净/非黑客的方式将是理想的,因为我会经常这样做。
【问题讨论】:
标签: stata