您的位置:首页 > 其它

SAS ODS 过程输出数据集

2014-08-13 13:21 183 查看
学习~

* ods trace on ;

LIBNAME MATABLES BASE "\\Hqdellsas04\exports\APJ" ;

ods output Base.Datasets.Members=MATABLES.result ;

proc datasets library=MATABLES ;

quit;

ods output close ;

* ods trace off ;

----------------------------------------------------------------------------------------------

来自SESUG 2007: ODS An Introduction to Creating Output Dataset.

如何知道一个一个过程的输出对象有哪些?可以用ods trace:

ods trace on;

下面的例子通过ods trace查看means过程具有哪些输出对象。这些输出对象的信息在log窗口中显示。

data a(keep=var);

do
i=1 to 100;

var=i+int(100*rannorm(0));

output;

end;

run;

ods
trace on;

proc
means data=a;

var
var;

run;

ods
trace off;

在log窗口中显示了means过程的输出对象:

Output Added:

-------------

Name: Summary

Label: Summary
statistics

Template: base.summary

Path: Means.Summary

-------------

可以知道means过程提供了一个输出对象,名称为Summary,标签为Summary Statistics。同时,在输出窗口中点开Means:The SAS System,显示具有一个输出对象Summary Statistics,里面包含数量,均值,标准差,最大最小值的信息。

由于means过程只有一个输出对象,所以可以很确定地知道统计量肯定都在该输出对象中。如果在比较复杂的过程中,输出对象可能不止一个。当使用者需要明确知道输出对象名称,从而可以将特定输出对象指定输出到特定数据集时,使用者可能并不能确定自己感兴趣的统计量在哪个输出对象中,该对象的名称是什么。这个时候ods
trace的作用就会表现出来。看下面的例子:

data a(keep=y x1 x2);

do
i=1 to 100;

y=i+int(100*rannorm(0));

x1=.6*y+ranuni(0)-0.5;

x2=.4*y+ranuni(0)-0.5;

output;

end;

run;

ods trace on;

proc reg data=a;

model
y=x1 x2;

run;

ods trace off;

在log窗口中将显示一下输出对象被添加:

Output Added:

-------------

Name: NObs

Label: Number
of Observations

Template: Stat.Reg.NObs

Path: Reg.MODEL1.Fit.y.NObs

-------------

Output Added:

-------------

Name: ANOVA

Label: Analysis
of Variance

Template: Stat.REG.ANOVA

Path: Reg.MODEL1.Fit.y.ANOVA

-------------

Output Added:

-------------

Name: FitStatistics

Label: Fit
Statistics

Template: Stat.REG.FitStatistics

Path: Reg.MODEL1.Fit.y.FitStatistics

-------------

Output Added:

-------------

Name: ParameterEstimates

Label: Parameter
Estimates

Template: Stat.REG.ParameterEstimates

Path: Reg.MODEL1.Fit.y.ParameterEstimates

-------------

Output Added:

-------------

Name: DiagnosticsPanel

Label: Fit
Diagnostics

Template: Stat.REG.Graphics.DiagnosticsPanel

Path: Reg.MODEL1.ObswiseStats.y.DiagnosticPlots.DiagnosticsPanel

-------------

Output Added:

-------------

Name: ResidualPlot

Label: Panel
1

Template: Stat.REG.Graphics.ResidualPanel

Path: Reg.MODEL1.ObswiseStats.y.ResidualPlots.ResidualPlot

-------------

注意其中DiagnosticPanal和ResidualPlot是诊断图形。

如果通过log和results窗口交替查看比较繁琐的话,可以使用listing选项,将输出对象信息和输出对象内容全部在results窗口中显示:

ods trace on/listing;

(注意:SAS V9.3 默认输出为html格式,可能没有输出对象的信息)。

在知晓了输出对象名称之后,可以使用ods output 输出对象名称=输出数据集 的办法将制定输出对象中的统计量输出到指定的输出数据集。

ods output ParameterEstimates=estim;

proc reg data=a;

model
y=x1 x2;

model
y=x2;

run;

quit;

ods output close;

(注意,如果忘记在reg过程结尾加quit语句,那么输出数据集将不会产生,并且log中出现警告信息,表示输出对象的名称或路径没有设定正确)。

输出对象estim的内容为:





另外,在ods output中,输出对象名称ParameterEstimates可以用输出对象路径代替:

ods output Reg.MODEL1.Fit.y.ParameterEstimates=estim;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: