打破BASE SAS中不平衡报价条件的最佳技巧是什么?
时间:2020-03-06 14:28:45 来源:igfitidea点击:
作为基本的SAS程序员,我们会了解以下内容:
我们提交了SAS代码,其中包含不平衡的引号,因此,现在我们不仅具有未闭合的引号,而且还具有未闭合的注释,宏函数定义和缺少的运行;或者退出;陈述。
避免那些不平衡的报价困扰最佳技巧是什么?
解决方案
至于我自己,我通常在Google处获取" SAS不平衡报价",最后提交如下内容:
*); */; /*’*/ /*”*/; %mend;
...突破未封闭的注释,引号和宏函数。
是的,我相信官方的SAS文档会为我们提供自己建议的解决方案。
我们总是可以发出终止提交的语句命令,然后重新提交要运行的内容。
这是我用的那个。
;*';*";*/;quit;run; ODS _ALL_ CLOSE; QUIT; RUN;
只是想重申AFHood关于使用ODS _ALL_ CLOSE;
语句的建议。这是要包括的关键。并确保每次使用ODS后都使用它。
企业指南3过去将以下行放在其自动生成的代码的顶部:
*';*";*/;run;
但是,要真正从各种不平衡的问题中"复位"的唯一方法是退出sas会话,并在重新提交代码之前平衡所有不平衡的问题。使用这种快速(便宜的)黑客无法解决根本原因。
顺便说一下,ods _all_ close;
关闭所有ods目的地,包括默认的结果目的地。在交互式会话中,至少应根据文档,打开" ods results;"或者" ods results on"来再次打开它。但是当我在9.2上对其进行测试时,它不起作用,如下所示:
%put sysvlong=&sysvlong sysscpl=&sysscpl; /* sysvlong=9.02.01M0P020508 sysscpl=X64_VSPRO */ ods _all_ close; proc print data=sashelp.class; run; /* on log WARNING: No output destinations active. */ ods results on; proc print data=sashelp.class; run; /* on log WARNING: No output destinations active. */