1

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

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

先感谢您

4

1 回答 1

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命令看不到临时名称(vector在您的示例中),因此将其评估为空字符串。它检测到的第一个令牌是第一个(不能成为可接受文件句柄的一部分的令牌,因此它会抱怨。

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

于 2014-01-19T17:29:09.320 回答