Stata在命令行中划界

时间:2014-10-28 14:48:19

标签: comments stata

我正在处理由其他人创建的.do文件。此人在整个文件中使用分号分隔符。我正在尝试浏览此文件,看看发生了什么。我喜欢通过选择部分代码并点击“执行选择(执行)”按钮来完成此操作。但是,分隔符似乎弄乱了这个。我有什么变通方法吗?

2 个答案:

答案 0 :(得分:2)

假设你的文件是这样的:

#delimit ;
set obs 
        10 ;
gen x = _n ;
gen y = x^2 ;
gen z = x
         ^3;

任何时候突出显示一个选择并按“执行选择(执行)”,Stata会创建一个临时的,自包含的文件,默认分隔在cr并运行:

"When a do-file begins execution, the delimiter is automatically set to 
carriage return, even if it was called from another do-file that set the
delimiter to semicolon." 

它不会从控制台顺序运行这些命令。因此,如果您在上面的do文件中选择前2个命令,则临时do-file包含对#delimit的调用,而如果选择了最后2个命令,则临时do-file将不会进行此调用,会为两行命令抛出语法错误。

一种解决方案可能是将选择复制粘贴到刚开始时只有#delimit命令的新文件,然后运行它。

您还可以编写一个脚本来删除分号的文件。如果一行不以分号结尾,则将下一行附加到当前行的末尾,然后再次检查此行。根据文件在do文件中的复杂程度,这或多或少会很困难。

答案 1 :(得分:1)

另一个选项是通过将/* */括起来并使用exit;来阻止您已经运行过的行。你必须要小心使用本地宏。