用户编写的命令“tpm”在Stata中生成无效的语法错误

时间:2013-12-14 00:43:55

标签: stata

我正在尝试运行用户编写的命令“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);

在这方面的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

跟踪回答了您的问题。该程序找不到设置c(version_rng)并且替换为空白。这使得随后对version的调用非法。

这可能是两个因素的组合:

  1. 您使用的是旧版本的Stata,而不是程序需要,而第一个迹象恰好是您的版本中未定义c(version_rng)。您应该告诉我们您正在使用的Stata版本。

  2. 主程序tpm缺少version语句。有时这是故意的,但这里看起来像一个bug。如果#1为真,通常你甚至都没有进入程序,因为version语句会抛出你,但是这里没有。

  3. 到目前为止,这类问题的最佳协议是:(1)发布在Statalist(2)上与作者联系。我的回忆是这些作者以任何方式观看Statalist。

    http://www.stata.com/support/faqs/programming/user-written-programs-and-stata-version/

    上的version还有更多内容

    creturn的帮助下,有更多内容。