在Stata中,说我有这些数据。
sysuse auto2, clear
gen name = substr(make, 1,3)
encode name, gen(name2)
我运行这个回归,重要的是它使用了 i.
:
reg price i.name2 trunk weight turn
输出的形式是:
------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
name2 |
Aud | 4853.048 1254.083 3.87 0.000 2331.545 7374.551
BMW | 5742.124 1560.161 3.68 0.001 2605.211 8879.037
Bui | 1351.065 946.733 1.43 0.160 -552.4696 3254.599
Cad | 7740.865 1168.332 6.63 0.000 5391.776 10089.95
Che | 62.35577 946.1153 0.07 0.948 -1839.937 1964.648
....
然后我进入估算结果:
matrix list e(b)
结果是:
e(b)[1,27]
1b. 2. 3. 4. 5. 6. 7.
name2 name2 name2 name2 name2 name2 name2
y1 0 4853.0482 5742.1237 1351.0647 7740.8653 62.355771 2676.3971
8. 9. 10. 11. 12. 13. 14.
name2 name2 name2 name2 name2 name2 name2
y1 943.4266 1964.8242 1776.4058 2711.4324 6386.7936
....
我的问题是,我怎样才能从变量标签中检索出变量标签?name2
回归运行后的变量?我想要的是初始输出中显示的内容。Aud
, BMW
, Bui
等。我不想要存储在 e(b)
矩阵。1b. name2
, 2. name2
, 3. name2
等。有没有办法让我想要的东西存储在 e(b)
还是存储在其他估算结果中?蟮? estout/esttab
? 我想把结果存储在一个矩阵中。
你可以将e(b)存储在一个矩阵中,得到你的变量名称,用 levelsof
命令并重命名列名。
sysuse auto2, clear
gen name = substr(make, 1,3)
encode name, gen(name2)
reg price i.name2 trunk weight turn
mat A = e(b)
levelsof name, local(names)
local colnames "`names' trunk weight turn _cons"
matrix colnames A = `colnames'
matrix list A