我正在尝试运行用户编写的命令“tpm”(ssc install tpm
)的帮助文件中提供的示例,但是它给出了错误invalid syntax
。
webuse womenwk, clear
replace wage = 0 if wage==.
set trace on
tpm wage educ age married children, f(probit) s(regress)
--------------------------------------------------------------------------------------------------------------------------------------------------- begin tpm ---
- if _by() {
local BY `"by `_byvars'`_byrc0':"'
}
- local _vv: di "version `c(version_rng)', missing:"
= local _vv: di "version , missing:"
- `_vv' `BY' _vce_parserun tpm, jkopts(eclass): `0'
= version , missing: _vce_parserun tpm, jkopts(eclass): wage educ age married children, f(probit) s(regress)
invalid syntax
----------------------------------------------------------------------------------------------------------------------------------------------------- end tpm ---
r(198);
在这方面的任何帮助将不胜感激。
答案 0 :(得分:2)
跟踪回答了您的问题。该程序找不到设置c(version_rng)
并且替换为空白。这使得随后对version
的调用非法。
这可能是两个因素的组合:
您使用的是旧版本的Stata,而不是程序需要,而第一个迹象恰好是您的版本中未定义c(version_rng)
。您应该告诉我们您正在使用的Stata版本。
主程序tpm
缺少version
语句。有时这是故意的,但这里看起来像一个bug。如果#1为真,通常你甚至都没有进入程序,因为version
语句会抛出你,但是这里没有。
到目前为止,这类问题的最佳协议是:(1)发布在Statalist(2)上与作者联系。我的回忆是这些作者以任何方式观看Statalist。
http://www.stata.com/support/faqs/programming/user-written-programs-and-stata-version/
上的version
还有更多内容
在creturn
的帮助下,有更多内容。