【问题标题】:Stata do file /// Execute (do) errorStata do file /// 执行(do)错误
【发布时间】:2014-10-29 01:31:09
【问题描述】:

我有一个.do 文件,其中有一些长行代码被分解为多行。处理此问题的一种方法是在行尾使用/// 命令。但是,这似乎不适用于以下应用程序:

local abc "a b ///
    c d ///
    e f"

由于某种原因,在do文件编辑器中,第一个///是黑色的,第二个是绿色的。当我选择这部分代码并点击Execute (do) 按钮在Stata 中运行它时,我得到一个错误。该怎么办?

【问题讨论】:

    标签: comments stata


    【解决方案1】:

    查看运行这些 sn-ps 的结果:

    local abc a b ///
        c d ///
        e f
    
    display "`abc'"
    

    local abc a b /*
        */ c d /*
        */ e f
    
    display "`abc'"
    

    local abc a b ///
    c d ///
    e f
    
    display "`abc'"
    

    在所有这三个方面,Stata 都理解继续下一行的愿望。 Stata 不喜欢的是你试图将" 包围的字符串分成几行。

    还要检查https://stackoverflow.com/a/26143229/2077064,它可能包含有用的参考资料。

    【讨论】:

    • 听起来不错。愚蠢的问题,但是在我的示例中包含 "s 与在您的示例中不使用 "s 有什么不同吗?
    • 来自 [U] 18.3.4 宏和表达式:“...Stata 不介意我们在本地(全局)语句中省略双引号。”我建议阅读整个条目,以便您了解完整的上下文和其他应该感兴趣的内容。
    • 这里,例如:local abc "abc" "d" "e" "f",引号会有所不同。你也可以把它分成几行,只是不要在对应的"s 之间这样做。
    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多