SAS:向lst输出文件添加注释

SAS:向lst输出文件添加注释,sas,Sas,在SAS中,如何向.LST输出文件添加注释。就像在执行proc打印之前添加一条注释“这是tbl_TestMacro的输出”一样?以便我的输出文件将读取: This is the output for tbl_TestMacro: Obs field1 field2 1 6 8 2 6 9 3 7 0 4 7 1 而不仅仅是: Obs

在SAS中,如何向.LST输出文件添加注释。就像在执行proc打印之前添加一条注释“这是tbl_TestMacro的输出”一样?以便我的输出文件将读取:

This is the output for tbl_TestMacro:
Obs    field1    field2

 1        6         8  
 2        6         9  
 3        7         0  
 4        7         1  
而不仅仅是:

Obs    field1    field2

 1        6         8  
 2        6         9  
 3        7         0  
 4        7         1  

谢谢,Dan,在数字计算语言问题(如SAS和R)上,你可能会有更多的运气

但无论如何,我会试试看。两者都适用于您的目的:

title "This is the output for tbl_TestMacro:";

我相信“put”将把答案放在日志中,而不是列表中

标题会起作用,但它只会将标题放在页面顶部

SAS中没有优雅的方式将文本注释与输出相结合。我所知道的最好的工具是SASweave和StatWeave,它们都是由Russ Lenth开发的。他们可能需要比你愿意付出更多的时间投入。或者,你可以用R和swave

然而,一种丑陋的方法是使用所需的文本创建数据集,并使用如下例程:

data mytext;
text = "This is the output for tbl_TestMacro";
run;

proc print noobs data = mytext split='*';
var text;
label text = '*';
run;
(本来应该有一个更好的无变量标签快捷方式,但我没能让它工作。)

或者你可以这样做

data _null_;
    file print;
    put "this is the output";
    file log;
run;

有关更改“put”目的地的更多信息,请参阅。

这更像是一个编程问题,更适合于;它将自动迁移到那里。看起来您已经有一个关联的SO帐户,因此您应该自动维护所有权。标题是我的建议。请记住,标题将显示在所有列表输出上,直到您将其清空或覆盖。并且“put”将把文本放入日志中,除非您另有指示——请参见下面的Ken的答案和我的答案。
data _null_;
    file print;
    put "this is the output";
    file log;
run;