九:put语句
可以输出变量信息到指定地点,包括输出到sas系统的日志窗口;
输出到file语句规定的外部文件
输出到sas系统的output窗口
@单尾操作符,多用于input语句中,@@双尾操作符,多用于put语句中。
Data a;
Input x $ y z @@;
Cards;
A 10 20 b 30 40 c 50 60
;
Run;
简单方式输出:
Data _null_;
Set a;
Put x$ @;
Put [email protected];
Put z;
Run;
程序读入数据集a 的第一条观测值后,执行第一个put语句,输出变量x的值到日志窗口,由于使用固定说明符中的单尾符,故控制指针任然停留在改行,继续执行下一个put语句,输出变量y之后,同理继续输出z,z后面没有指针控制符,故转到下一行。
混合使用五种不同的输出方式:
data mix;
input x $ y z m n p q;
cards;
x 10 20 30 40 50 60
y 70 80 90 100 110 120
;
data _null_;
set mix;
put @2 x$ @;
put y 5-10 [email protected];
put @15 z:5.3 @;
put (m n p)(best10. "---" 4.2 "---" 4.2) @;
put @60 q=;
run;
商业实战中put主要有两个用途:输出结果到log窗口,调试程序运行过程中变量产生的中间值;输出结果到外部文件。
libname ch3 ‘f:\data_model\book_data\chapt3‘;
ods listing close;
ods output parameterestimates=et ;
proc reg data=ch3.fitness outest=est;
model oxygen=age weight runtime runpulse restpulse maxpulse ;
quit;
ods output close;
ods listing;
filename fb " f:\data_model\book_data\chapt3\score";
data _null_;
set et(keep=variable estimate ) end=last;
file fb notitles;
if _n_=1 then put @1 "scr= 0";
est=abs(estimate);
if estimate<0 then put @1 ‘-‘ @;
else put @1 ‘+‘ @;
if variable =‘intercept‘ then put @5 est 10.5;
else put @5 ‘(‘ est best10. @20 ‘* sum(‘ variable $20. ‘,0)) ‘;
if last then put @5 ‘;‘;
run;
注:该程序是商业应用中比较标准的输出多元线性回归分析打分文件的程序;