我试图将ivreg2命令的第一阶段统计信息(即AP F stat)添加到第一阶段结果的输出中estout.我知道这些统计数据存储在e(first)第二阶段结果的矩阵中,但我无法弄清楚如何在第一阶段结果中显示这些统计数据.我尝试过以下内容并且都不起作用:
ivreg2 y `included' (q=z), first ffirst savefirst savefprefix(first_)
estimates store m1
estadd matrix first=first: first_q
estimates restore first_q
Run Code Online (Sandbox Code Playgroud)
然后尝试包括APF作为统计数据estout,它不起作用.我也试过添加这些行:
matrix first=e(first)
estadd scalar APF=first[7,1]
Run Code Online (Sandbox Code Playgroud)
这也行不通.我还尝试编写一个新的_estadd_apf.ado子命令,但无法使其工作,并尝试使用帮助文件中myel[#]描述的语法estout,但这也无效.(似乎在stats()选项中的任何位置包含括号都会导致错误.)我也尝试aux()了esttab包装器中的选项,但是没有用.
当我键入时,matrix list first我可以看到正确的APF值,但它存储在矩阵而不是标量中,并且estout不会将其包含在表中,单元格只是空白.我也试过在没有使用的情况下定义一个本地标量estadd,这也是行不通的.有什么建议?
我正在寻找一种方法来检查 Stata 数据集中是否存在变量,如果不存在,则在循环中重复检查变量名称,直到找到存在的变量为止。我知道对类似问题的其他答复涉及confirm并依赖于测试 的价值_rc。
但是,如果您尝试重复使用这些方法,则循环的任何给定迭代中的值_rc只能说明在任何先前的迭代中是否至少存在一个错误。我希望继续测试,直到没有错误为止,但是每当第一次尝试导致错误时,就无法判断第二次尝试是否也会导致错误,因为_rc无论如何都保持不变(假设所有错误报告相同的代码) 。有没有办法手动重置_rc为零,或者以不涉及的不太特别的方式测试变量的存在_rc?