【发布时间】:2015-09-11 10:44:46
【问题描述】:
我从几年前就开始使用 Stata 以及 R 等其他语言。 Stata 很棒,但有一点让我很恼火:生成/替换行为,尤其是“...已经定义”错误。
意思是如果我们要运行一段代码两次,如果这段代码包含一个变量的定义,这个定义需要2行:
capture drop foo
generate foo = ...
而在 R 等其他语言中只需要一行代码。
那么还有另一种方法来定义在一个命令中结合“生成”和“替换”的变量吗?
【问题讨论】:
-
在我看来,Stata 正在保护您数据的完整性。额外的支票是一笔不小的代价。
-
这对我和其他人来说都不是问题,因为我将代码写在我从顶部运行的 do-files 中,首先是清除和重新加载数据。通过选择一组行并运行、编辑和重新运行直到它们正确,然后继续进行后续的一组行,我可以在调试时看到问题。但是因为这组行是从一个临时的 do 文件中运行的,所以在测试结束时不会保留本地宏以供下一组提交的行使用。这意味着我很少发现逐段提交代码很有用。
-
是的,我同意 Stata 旨在运行整个 do-file 而不是 do-files,本地宏就是一个很好的例子,“set more off”命令也是如此。我想我应该调整我的行为。问题是某些命令执行时间很长,在执行完这些命令后调试代码并不方便。
标签: stata