运行复杂的过程,例如PROC REG
或PROC GLM
,除了使用{{1}生成的输出数据集之外,通常还会在输出窗口中生成描述回归结果的表格。 }或OUT
选项。
如何将这些表输出到SAS数据集?
例如,给定PROC REG中的第一个SAS示例(在documentation page上),如何输出拟合优度统计量(例如R-Squared)?
答案 0 :(得分:5)
为了识别可能的输出数据集,SAS提供了ods trace
语句。这要求SAS将日志写入输出的每个数据表的名称(以及一些细节)写入日志。在大多数情况下,可以通过ods output
将其保存到数据集中。
例如,在问题中提到的SAS示例中,您可以写:
ods trace on;
proc reg data=baseball;
id name team league;
model logSalary = no_hits no_runs no_rbi no_bb yr_major cr_hits;
run;
ods trace off;
那将在日志中报告" FitStatistics"是您想要的输出对象的名称。然后你写:
ods output FitStatistics=fitds;
proc reg data=baseball;
id name team league;
model logSalary = no_hits no_runs no_rbi no_bb yr_major cr_hits;
run;
,它将输出fitds
数据集。
ODS Trace仅用于确定表的名称 - 当您知道所需表的名称时,您可以在将来使用该名称ods output
。
您还经常可以在文档中找到表名列表;例如,PROC REG将它们here放置。
ODS输出可以放在run
语句之前的任何位置(因为它是一个全局语句);公共位置紧靠run
之前。我个人的偏好是将它放在proc
之前,因为它是一个全局声明,但是there is some disagreement with that approach。