在SAS中,什么是捕获语法错误的好技巧/选项?

时间:2009-05-07 18:03:13

标签: sas

在增强编辑器中,着色可能会给你一个提示。但是,在大型机上我不相信编辑器中有任何可以帮助你的东西。

我用

OPTIONS OBS=0 noreplace;

obs = 0选项指定从输入读入0个观察值 数据集和NOREPLACE告诉SAS不要用其中一个覆盖现有的SAS数据集 一样的名字。如果要创建新的datastet,将使用所有属性创建它, 但有0个观察结果。 (如果需要,请务必将选项重置为选项Obs = max replace;当找不到更多语法错误时)。

我对任何其他技术感兴趣。 感谢

有关选项的说明来自here.

3 个答案:

答案 0 :(得分:16)

我在run语句中使用cancel选项。它将检查数据步骤的语法,然后在不实际执行的情况下终止它。这是与proc sql中的noexec选项类似的数据步骤。

data something;
<stuff here>
run cancel;

SUGI pdf

中有更多详细信息

答案 1 :(得分:-1)

我在PC上使用SAS和增强的彩色编码器编写我的所有代码。然后我使用SAS / CONNECT在大型机上处理它。如果数据集在DASD上,我使用SAS / CONNECT和Enterprise Guide直接在大型机上运行代码(没有JCL!)如果涉及数据磁带,因此必须批量运行,我使用SAS / CONNECT和SAS ftp引擎将代码发送到主机批处理队列。我使用SAS电子邮件引擎将我的输出和日志通过电子邮件发回给我。我把我的代码和ODS夹在一起,让大型机为输出生成一个WORD文件。我使用PROC下载将输出下载到我的服务器,以便我可以在WORD中打开它。

答案 2 :(得分:-1)

这个建议与语言无关。

我认为捕获语法(和逻辑)错误的一种更好的方法是对您自己的代码执行近距离读取(或检查)(应该捕获大部分语法错误),然后对小数据集进行单元测试(如果你的测试设计得很好,它将捕获任何剩余的语法错误,以及许多逻辑错误)。

我同意单独进行语法检查是值得的,但是在第一次编译之前要彻底阅读和理解你的代码,这样你知道它会编译是一个很好的理想。 Steve McConnell在Code Complete中触及了这个想法(参见第2版第827页)。

P.S。你在原帖中提到了语法高亮;还有其他编辑器(如VIM)将在SAS文件上执行语法高亮显示。