【问题标题】:Attempting to call ivregress command within a program fails with an error message尝试在程序中调用 ivregress 命令失败并显示错误消息
【发布时间】:2017-07-28 07:28:29
【问题描述】:

例如,我一直在使用命令 ivregress 进行分析

(...)
ivregress 2sls y1 x1 x2 (y2 = z1 z2)

正常工作。

但同样的指令放在程序中,例如:

 program test
 (...)
 ivregress 2sls y1 x1 x2 (y2 = z1 z2)
 end
 test

在执行程序时给出错误消息__00009E not found。之后,有必要清除所有内容以使 ivregress 即使在程序之外也能正常工作。

我进行了几次测试,问题似乎是由程序调用ivregress 引起的。

其他命令,例如regress y1 x1 x2,无论是在程序内部还是外部都可以正常工作。

我需要在程序中运行ivregress 命令,因为我想做蒙特卡罗模拟。

我在网上没有找到任何关于这个问题的信息,无论是ivregress命令的问题,还是程序中可以调用哪些命令有限制......

有人对此问题的解释或解决方案吗?

【问题讨论】:

    标签: stata


    【解决方案1】:

    例如,通过将程序重命名为 mytest 解决了问题。 “测试”是 Stata 中的一个命令,这可能是问题所在。它没有解释为什么当从程序调用“regress”命令时它确实有效。

    【讨论】:

    • 我认为确实如此。当您不带参数运行test 时,它会尝试重新运行最后一个test(官方)命令。在您的情况下,之前的 test 被记住了,但它使用了不再存在的临时变量,所以不要去。 Stata 甚至从不尝试运行您的程序,并且错误与内部内容无关。这就是我的解释。总之,您的问题完全在于使用现有命令的名称(将始终首先尝试)的程序名称与您的程序内容无关,包括它使用 @987654324 的事实@.
    • 要进一步测试,set trace on 看看会发生什么。
    • 以双下划线开头的名称是临时名称。
    猜你喜欢
    • 1970-01-01
    • 2016-12-07
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 2017-03-08
    • 2019-11-01
    • 2020-12-31
    相关资源
    最近更新 更多