你可以把经常要用的几个过程步会产生哪些数据集都先熟悉一下,这样无论是写宏还是自己使用的时候都会快很多;
eg.
proc univariate data=cluster.test;var response;run;见p1
一般来说,你的response下面有几个html文件就会产生几个数据集,而数据集里面就是你想要的变量;
像这个过程步产生的就是5个数据集,分别是 moments, basic measure of location and variability, tests for location, quantiles, extreme observations;
但是显示出来的都是标签,我们想要的是数据集的名称
首先是trace的选项,这个选项可以帮助我们更快的知道过程步会产生什么样的数据集
eg.
ods trace on;proc univariate data=cluster.test;var response;run;ods trace off;结果:
Output Added:
-------------
Name: Moments
Label: Moments
Template: base.univariate.Moments
Path: Univariate.response.Moments
-------------
Output Added:
-------------
Name: BasicMeasures
Label: Basic Measures of Location and Variability
Template: base.univariate.Measures
Path: Univariate.response.BasicMeasures
-------------
Output Added:
-------------
Name: TestsForLocation
Label: Tests For Location
Template: base.univariate.Location
Path: Univariate.response.TestsForLocation
-------------
Output Added:
-------------
Name: Quantiles
Label: Quantiles
Template: base.univariate.Quantiles
Path: Univariate.response.Quantiles
-------------
Output Added:
-------------
Name: ExtremeObs
Label: Extreme Observations
Template: base.univariate.ExtObs
Path: Univariate.response.ExtremeObs
-------------
这样我们就可以看出来增加的5个数据集的name和label;
那么剩下来的就是要把结果导出到数据集里面去;
我知道网上和书上有很多版本,
eg.
ods listing close;
ods result off;
ods output ...
但是我自己使用的是SAS9.3版本,所以我相信大家使用9.3版本得到的结果也不会是放到output里面去的,所以我觉得应该是关闭网页的输出结果(见p2)
ods html close;
ods output
ExtremeObs=e Quantiles=q;
proc univariate data=cluster.test;
var response;
run;
ods output close;
ods html;
我这里只导出了extremeobs 和 quantiles 两个数据集,最多可以导出5个。
这里只是举个例子,所以大家可以自己回去试试,也可以试试看别的proc过程步,我也想写个帖子把各个过程步的结果都导出来看看。