Stata:返回一个宏,其中包含存储在e()中的所有标量的列表

Stata:返回一个宏,其中包含存储在e()中的所有标量的列表,stata,Stata,我正在尝试编写一个程序,希望迭代存储在e()中的所有标量。我想要控制台上显示的列表以响应ereturn列表——它通常包括e(N),e(r2),&c 我不能硬编码,因为用户可以使用estadd添加到列表中 我希望能够键入以下内容: levelsof e_scalars return list macros: r(escalars) : "e(N) e(r2) e(df)" 看到这样的情况: levelsof e_scalars return list macros: r(es

我正在尝试编写一个程序,希望迭代存储在e()中的所有标量。我想要控制台上显示的列表以响应
ereturn列表
——它通常包括
e(N)
e(r2)
,&c

我不能硬编码,因为用户可以使用
estadd
添加到列表中

我希望能够键入以下内容:

levelsof e_scalars
return list
macros:
    r(escalars) : "e(N) e(r2) e(df)"
看到这样的情况:

levelsof e_scalars
return list
macros:
    r(escalars) : "e(N) e(r2) e(df)"
有没有办法把那张单子还给我


谢谢。

这会让你接近:

sysuse auto
reg price mpg
estadd scalar mystat 42 
ereturn list

local scalars: e(scalars)
di "`scalars'"

foreach element of local scalars {
    di "e(`element') is " e(`element')
}

这在编程手册(第267页)的“”下有记录。

这将使您接近:

sysuse auto
reg price mpg
estadd scalar mystat 42 
ereturn list

local scalars: e(scalars)
di "`scalars'"

foreach element of local scalars {
    di "e(`element') is " e(`element')
}

这在编程手册(第267页)的“”下有记录。

扩展@dimitry的答案:

clear all
set more off

sysuse auto, clear

regress price mpg
ereturn list

local groupscalars: e(scalars)

foreach element of local groupscalars {
    local e_scalars "`e_scalars' e(`element')"
}

estadd local mymacro = `"`e_scalars'"'
ereturn list
给你:

macros:
            e(mymacro) : "e(N) e(df_m) e(df_r) e(F) e(r2) e(rmse) e(mss) e(rss) e(r2_a) e(ll) e(ll_0).."
            e(cmdline) : "regress price mpg"
              e(title) : "Linear regression"
          e(marginsok) : "XB default"
                e(vce) : "ols"
             e(depvar) : "price"
                e(cmd) : "regress"
         e(properties) : "b V"
            e(predict) : "regres_p"
              e(model) : "ols"
          e(estat_cmd) : "regress_estat"

扩展@Dimitry的答案:

clear all
set more off

sysuse auto, clear

regress price mpg
ereturn list

local groupscalars: e(scalars)

foreach element of local groupscalars {
    local e_scalars "`e_scalars' e(`element')"
}

estadd local mymacro = `"`e_scalars'"'
ereturn list
给你:

macros:
            e(mymacro) : "e(N) e(df_m) e(df_r) e(F) e(r2) e(rmse) e(mss) e(rss) e(r2_a) e(ll) e(ll_0).."
            e(cmdline) : "regress price mpg"
              e(title) : "Linear regression"
          e(marginsok) : "XB default"
                e(vce) : "ols"
             e(depvar) : "price"
                e(cmd) : "regress"
         e(properties) : "b V"
            e(predict) : "regres_p"
              e(model) : "ols"
          e(estat_cmd) : "regress_estat"

宏扩展功能来拯救!谢谢,这正是我所希望的。宏扩展功能来拯救!谢谢,这正是我所希望的。这只是为了明确指出,
levelsof
只用于引出变量的不同值;这里不适用。(这并不意味着它确实存在,但有些人可能希望明确这一点。)这只是为了明确指出,
levelsof
仅用于引出变量的不同值;这里不适用。(这并不意味着这是真的,但有些人可能希望把这一点说清楚。)