我首先要列出一些我希望对其进行回归的变量。然后我想将它们的系数保存为带有数字的标量。例如,到目前为止,这是我的代码
local varlist="vertical reps"
foreach variable of local varlist{
forval i=1/2{
quietly reg successorfail `variable'
scalar s`i'=_b[`variable']
}
}
当我列出结果时,我得到:
s2 = .00928925
s1 = .00928925
所以它正在创建新的标量,只是它运行的最后一个回归系数。
我希望结果是:
s1=first reg coefficient
s2=2nd reg coefficient
谢谢!
答案 0 :(得分:2)
这有效:
clear all
set more off
sysuse auto
local varlist mpg weight
local i 0
foreach variable of local varlist {
local ++i
quietly reg price `variable'
scalar s`i'=_b[`variable']
display s`i'
}
您的代码有几点:
不需要第二个循环。如果要将循环编号附加到标量名称,可以使用local作为计数器。我使用本地i
并更新它(即添加1),每次通过循环。更重要的是,请注意,对于每个自变量,您运行相同的回归两次(因为forval i=1/2
)。
我无法看到您使用第local varlist = "vertical reps"
行尝试的内容。你应该在循环之外定义回归量,如果这是你的目标。
答案 1 :(得分:2)
作为参考,这是另一种方法。
clear all
set more off
sysuse auto
local varlist "mpg weight"
local nv : word count `varlist'
tokenize "`varlist'"
forval i = 1/`nv' {
quietly reg price ``i''
scalar s`i'=_b[``i'']
display s`i'
}