假设我有这个程序:
1 data temp;
2 set _null_;
3 run;
4
5 %put Hello world;
我希望为它添加两行,一行运行程序的第1-3行,另一行运行第5行。
第二个例子表明%include可能是我正在寻找的,但%包含1-3而%include 5不起作用。 %include [path] 1-3让我陷入无限循环,这是不可取的。
实现这一目标的最佳方法是什么?谢谢!
答案 0 :(得分:3)
编辑:这仅适用于之前提交的行。
您需要SPOOL选项。我使用RESETLINE语句来重置使用SAS / EG时有用的行号。我想知道你打算如何使用它。
public class post {
public Post(long time, String name, String content) {
super();
this.time = time;
this.name = name;
this.content = content;
}
public String name;
public String content;
public long time;
public String getName() {
return name;
}
public String getContent() {
return content;
}
public long getTime() {
return time;
}
}
答案 1 :(得分:0)
Macros,也许?
%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页开头的示例: First & Ronk, SGI 130-30, SAS® Macro Variables and Simple Macro Programs
答案 2 :(得分:0)
一个额外的回报可能搞砸你的行引用...如果你需要在某个地方添加一个标题或一行代码,或者你愿意回去修复你所有的行号参考?
我建议使用macro
或%include
选项。
%macro repeat_code();
***sas code goes here;
%mend;
%repeat_code
对于%include
,您可以在新文件中创建行,然后使用%include
在代码中引用它们。
根据这些线路的实际情况,您可能还有其他选择。例如,如果它是查找或重新编码变量,我将使用格式。