运行复杂的过程,例如PROC REG
或PROC GLM
,除了使用 OUT
或 OUTPUT
选项生成的输出数据集。
如何将这些表输出到 SAS 数据集?
例如,给定 PROC REG 中的第一个 SAS 示例(在 documentation page 上),如何输出拟合优度统计数据(例如 R 平方)?
最佳答案
为了识别可能的输出数据集,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
中使用该名称即可 future 。
您还经常可以在文档中找到表名称的列表;例如,PROC REG 将它们置于 here .
ODS 输出可以放置在 run
语句之前的任何位置(因为它是全局语句);一个常见的位置是紧接在run
之前。我个人偏好是将其放在 proc
之前,因为它是全局语句,但是 there is some disagreement with that approach .
关于sas - 如何查看我的过程中可用的输出选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30896668/