Stata - postfile错误

时间:2014-01-16 19:46:25

标签: stata postfile

为什么我会收到“无效名称”(参见最后一行)?

tempname vector
postfile `vector' beta_lag    beta_const /// 
              se_mvalue   se_const   /// 
          using vettore, replace

xtreg Perf lag if t>=396 & t<=408
post `vector' (_b[lag])  (_b[_cons]) ///
              (_se[lag]) (_se[_cons])

结果:

. (regression is ok, omitted result...)
. post `vector'  (_b[lag])  (_b[_cons]) (_se[lag]) (_se[_cons])
( invalid name

提前谢谢

1 个答案:

答案 0 :(得分:0)

与断言相反,你所做的事情并不明显。此代码段说明了技术,您应该能够无错误地重现其运行。

webuse nlswork, clear 
xtset idcode
tempname myout 
postfile `myout' constant grade age using myout.dta
xtreg ln_w grade age 
post `myout' (_b[_cons]) (_b[grade]) (_b[age]) 
postclose `myout' 
describe using myout 

该示例显示,如果有任何疑问,使用_b[_cons]等表达式就可以了。

我的猜想仍然是post命令无法看到你的例子中的tempname(vector),因此将其评估为空字符串。它检测到的第一个令牌是第一个(,它不能成为可接受的文件句柄的一部分,所以它会抱怨。

如果您在其他语言环境中定义tempname,则可能会出现此问题。例如,可以是部分代码在主交互式会话中运行,部分代码来自do-file或do-file编辑器。也可能是您选择要在部分中运行的代码(例如,选择单独的行并单独运行它们)。