我正在尝试使用建立表命令,因为我想添加一个标量,所以我使用埃斯塔德命令。
标量已成功生成,但一旦我创建表格,标量的某些值就会出现许多小数位。尽管我在建立表命令如下所示。
eststo: reg y x
su y
local contmean = r(mean)
local rcont = round(`contmean', 0.001)
estadd local cont = `rcont'
esttab using "table.tex", b(%9.3f) se(%9.3f) ///
stats(cont N r2, label( "Control Mean" "N" "R2") fmt(%9.3f 0 %9.3f)) style(tex)
eststo clear
我尝试使用 round() 函数对数字本身进行四舍五入来解决这个问题,但即使这样也行不通。奇怪的是:
- 其他统计数据(N r2)以正确的格式显示(0 %9.3f)
- 标量表示中的这种不精确性仅发生在某些变量中,而不会发生在其他变量中(见图)
Statalist 告诉我这是一个精度问题,但我不知道如何解决它。
谢谢!
答案1
在写信给包作者之后,我发现,如果不将系数添加为本地变量(字符串),而是将它们添加为标量(数字),问题就解决了。
上述代码应如下所示:
eststo: reg y x
su y
estadd scalar cont = r(mean)
esttab using "table.tex", b(%9.3f) se(%9.3f) ///
stats(cont N r2, label( "Control Mean" "N" "R2") fmt(%9.3f 0 %9.3f)) style(tex)
然后表格将显示具有预期精度的系数:)
向 Benn Jann 致敬!