数学建模社区-数学中国

标题: ODS trace与output的配合使用 [打印本页]

作者: 三省    时间: 2014-7-2 16:27
标题: ODS trace与output的配合使用
本帖最后由 三省 于 2014-7-2 16:53 编辑 & Z  l: c  [$ B& t

: j8 w  a: }" L7 V" K( R  B     TRACE的功能室查询输出管道的对象。实际应用中,编程人员绝对不会刻意记住每一个过程步的所有输出对象名称,通过TRACE就可以很容易获取所需要的输出对象的名称。$ V$ a% G$ e% Q3 H& u5 X- @+ d
1 c6 [  Q4 i2 T  k& m
   OUTPUT的主要功能是将OUTPUT窗口的输出对象转换成SAS数据集。比如,UNIVARIATE过程步可以产生很多输出对象,如果想要将其中的基本部分(如极值观测、分位数等),输出成为SAS数据集,就需要用到OUTPUT输出管道。$ _& l4 C/ P: v9 q
9 ]# P; W, M4 M# \) S+ I9 i
1. ODS TRACE: }' K8 v3 k' i% n* o7 O
例如运行如下代码:
( U! `5 \" \3 y- }* k; P0 g 6 q+ H* q  ?  N. D5 H# [
ods trace on listing; /*listing:输出对象记录(即名称、标签等)到OUTPUT窗口*/
- W, Q( b! R" k" ?proc univariate data=sashelp.class;
. V/ N% {- m% a var age;% y" o' p2 {2 @4 F) Q" H$ T
run;
$ z9 u: ~2 _, _; T# [0 sods trace off;
' k$ \" H$ Q& [0 Y" z8 b出现如下结果:' m+ o3 ~( h0 c" x- e

: o; ^' W7 f/ t下面是univariate过程的所有输出对象,即有如下的五个估计部分:
! {/ [( _- Y. c/ L, x2 S8 t QQ截图20130702163311.png - i, A$ m$ ~! _; f

* E2 C* D- ^( Q" s         QQ截图20130702162757.png ; _+ b5 P8 _$ j$ }; O

1 v8 g  c. l0 B- G; `
- C1 n( k- F: P$ d% v4 {其中红框部分的ExtremeObs(极值观测)、Quantiles(分位数)常常用于数值型变量的数据清洗工作。  
7 E3 f' V3 t4 V" i
; B- M% p% E' u5 K
8 @& ~' K5 H3 w2. ODS OUTPUT
1 h1 n- g- p  S; I/ {2 \, B# B1 l! t% Y
假设研究人员关心的是基本测度、 ExtremeObs、Quantiles这三个部分的估计结果,那么就需要OUTPUT将基本测度、ExtremeObs与Quantiles三个对象输出为SAS数据集:
1 ]. @* B8 t% q9 I2 b
+ k* h) O4 s" o: V, Pods listing close;9 I" J. u( L6 Q: t- h
ods results off;
/ O1 y1 Y" w. D. G; p! D! R0 ~ods output " f! F" d8 {8 O( Y% \- n+ i
basicmeasures=basic
' b- P7 t3 O6 e9 P9 M. k! F0 K& x4 B extremeobs=extremes
% H- u+ l0 A+ V& S; p quantiles=quantiles
; s  F( z; k5 X* u( a4 {! ];
" ?1 w6 f8 |) _/ o$ tproc univariate data=sashelp.class;- ~, `, x3 P( Y3 v& c0 u9 {
class sex;
9 b' j+ `( `: u- E/ ?  e var weight height;
& B: K. x  E4 g2 s$ Trun;
1 T! M5 f+ a: s, t" n, q) c" [ods output close;, E: @8 D! ]4 s- e* e2 ^
ods results on;
# ?4 k. ~9 a5 X9 ^% iods listing;$ |- G5 n7 Z# @3 E/ U

7 Z8 C/ Q6 o( Q6 k* O输出basic基本测量:( v8 W9 e; d0 k. H9 F3 A$ S
proc print data=basic;run; : d7 o" i6 Y$ G" Z
QQ截图20130702165111.png # p/ G1 }) T" l. k5 |' p

' H! q2 x0 h4 D* K2 S输出extremes极值观测:: P4 `" [1 N  g
proc print data=extremes;run;6 B) P& N$ P' X- u0 I4 U
QQ截图20130702165128.png ! C+ t8 }( p- l9 z$ A3 e" e8 }% [
+ Y" C( \- k3 Z% H. I
输出分位数
; B/ I, ?" ?7 L8 r+ {! H2 Pproc print data=quantiles;run;
! V5 B- K  u1 u7 z QQ截图20130702165226.png
. }! R" O* b; ]) O% B1 M* b
6 o. k6 g9 `3 i. y' b7 Q8 P& Z4 x+ ~
根据上面的单变量分析的结果,可以帮助我们进行数据清洗的工作。
, u) S+ v0 v6 V. N- ~6 X9 j1 M
/ p! |& B6 `, A. O2 }( [( i8 V" K; ^2 Z$ Q
9 a$ c( v. k5 s. J

4 V4 O8 w! H, P- X$ \( w- H( \) G




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5