运行SAS程序的指定行
假设我有这个程序:运行SAS程序的指定行,sas,Sas,假设我有这个程序: 1 data temp; 2 set _null_; 3 run; 4 5 %put Hello world; 我想给它添加两行,一行运行程序的第1-3行,另一行运行程序的第5行 第二个例子表明%include可能是我想要的,但是%include 1-3和%include 5不起作用include[path]1-3使我陷入无限循环,这是不可取的 实现这一目标的最佳方式是什么?谢谢 编辑:这仅适用于以前提交的行 你需要线轴选项。我使用RESETLINE语句来重置使用SA
1 data temp;
2 set _null_;
3 run;
4
5 %put Hello world;
我想给它添加两行,一行运行程序的第1-3行,另一行运行程序的第5行
第二个例子表明%include可能是我想要的,但是%include 1-3和%include 5不起作用include[path]1-3使我陷入无限循环,这是不可取的
实现这一目标的最佳方式是什么?谢谢 编辑:这仅适用于以前提交的行 你需要线轴选项。我使用RESETLINE语句来重置使用SAS/EG时有用的行号。我想知道您打算如何使用它
options spool=1;
resetline;
data temp;
set _null_;
run;
%put Hello world;
%include 1-3 / source2;
%include 5 / source2;
编辑:这仅适用于以前提交的行 你需要线轴选项。我使用RESETLINE语句来重置使用SAS/EG时有用的行号。我想知道您打算如何使用它
options spool=1;
resetline;
data temp;
set _null_;
run;
%put Hello world;
%include 1-3 / source2;
%include 5 / source2;
也许是宏
%macro one(datasetname= );
data &datasetname;
set _null_;
run;
%mend one;
%macro two(textstring= );
%put &textstring;
%mend two;
%one(datasetname= temp1);
%two(textstring= Hello world);
%one(datasetname= temp2);
%two(textstring= Hello new world);
您可以将宏变量从一个数据集而不是多个宏调用馈送到流程中。参见第11页开始的示例:
也许是宏
%macro one(datasetname= );
data &datasetname;
set _null_;
run;
%mend one;
%macro two(textstring= );
%put &textstring;
%mend two;
%one(datasetname= temp1);
%two(textstring= Hello world);
%one(datasetname= temp2);
%two(textstring= Hello new world);
您可以将宏变量从一个数据集而不是多个宏调用馈送到流程中。参见第11页开始的示例:
如果你需要添加一个标题,或者在某个地方添加一行新的代码,或者其他什么东西,你愿意返回并修复所有行号引用吗 我建议使用
宏
或%include
选项
%macro repeat_code();
***sas code goes here;
%mend;
%repeat_code
对于%include
,您可以在新文件中创建行,然后使用%include
在代码中引用它们
根据这些行实际执行的操作,您可能有其他选项。例如,如果它是一个查找或重新编码一个变量,我会使用一种格式 一次额外的返回可能会破坏你的行号引用……如果你需要在某处添加一个标题或一行新代码,或者其他什么东西,你愿意返回并修复所有行号引用吗 我建议使用
宏
或%include
选项
%macro repeat_code();
***sas code goes here;
%mend;
%repeat_code
对于%include
,您可以在新文件中创建行,然后使用%include
在代码中引用它们
根据这些行实际执行的操作,您可能有其他选项。例如,如果它是一个查找或重新编码一个变量,我会使用一种格式 %include通常引用外部文件。我不确定有没有办法做你想做的事。你能解释一下这个用例吗?有一大块代码我需要重新运行几次,我正在寻找一种比突出显示所有内容更简单的运行方式(循环在这个场景中不起作用)。我可以想象这还有其他用途,但这是我的意图。%include通常引用外部文件。我不确定有没有办法做你想做的事。你能解释一下这个用例吗?有一大块代码我需要重新运行几次,我正在寻找一种比突出显示所有内容更简单的运行方式(循环在这个场景中不起作用)。我可以想象这还有其他用途,但这是我的意图。resetline语句-很好!啊,好吧,也许这只是一个SAS EG功能。知道能不能为基本SAS解决一些问题吗?@多余的是,基本SAS是成批运行的。他只是一个提交者。我提到EG的原因是因为它提交了几行代码,这就是为什么我使用resetline.resetline语句的原因-很好!啊,好吧,也许这只是一个SAS EG功能。知道能不能为基本SAS解决一些问题吗?@多余的是,基本SAS是成批运行的。他只是一个提交者。我提到EG的原因是因为它提交了几行代码,这就是我为什么要重置代码行的原因。