3.6.2输出观测问题的方法
3.6.3自动变量_IORC_
3.7 PUT语句
将信息输出到: SAS的日志窗口
FILE规定的外部文件
3.7.1语法说明
语法格式
简单方式
PUT
PUT variable 开始列<终止列> <小数位><@|@@>; 列表方式
PUT <指针控制> variable<@|@@>;
PUT <指针控制>
PUT <指针控制> 变量格式<@|@@>;
PUT <指针控制> (变量列表)(格式列)<@|@@>; 命名方式
PUT <指针控制> variable =格式<@|@@>;
PUT variable=开始列<-终止列><小数位><@|@@>;
指针控制 指针控制 相对位置 绝对位置 列指针控制 +n @n +(expression) @(express) + numeric-variable @ numeric-variable 行指针控制 / #n _PAGE_ #numeric-variable _BLANKPAGE_ OVERPRINT 行固定说明符 @ @@ 3.7.2例子
data a;
input x $ y z @@; cards;
a 10 20 b 30 40 c 50 60 ; run;
data _null_; set a; put x$ @; put y @; put z; run;
data _null_; set a;
put @10 x$ @; put @15 y @; put @20 z; run;
data _null_; set a;
put x$ 10-14 @; put y 15-19 @; put z 20-24; run;
data _null_; set a;
put x$ 10-14 @; put y 15-20 .3 @; put z 25-30 .2; run;
data _null_; set a;
put x$ : @;/*:号表示去掉输出值前后的空格*/ put y : 4.3 @; put z : 7.4 @;
put 3*'here is char'; run;
data _null_; set a;
put x$ 5-10 @;
put @15 (y z) (4.3 \ 2.);/*注意格式与变量间的对应关系*/ run;
data _null_; set a;
put x$ 5-10 @; put @15 y 4.3 @; put \ @; put z 2.; run;
data _null_; set a; put x= @;
put @15 y=4.3 @; put @25 z=2.; run;
多种格式的混合使用:
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 .2@; put @15 z:5.3 @;
put (m n p)(best10. \ 4.2 \ 4.2) @; put @60 q=; run;
data _null_; set mix; put @2 x$ @; put +3 y 5-10 .2@; put +5 z:5.3 @;
put +5 (m n p)(best10. \ 4.2 \ 4.2) @; put +10 q=; run;
一个综合例子
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 \;
data _null_;
set et(keep=variable estimate ) end=last; file fb notitles;
if _n_=1 then put @1 \; 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;
3.8 FILE语句
与PUT语句配合使用(可以同是使用多个PUT语句),将数据输出到相应的输出设备(文件,LOG窗, OUTPUT窗)
3.8.1语法说明
FILE file-specification
外部文件名 如:”e:\\exam.txt”;
文件标识(用filename语句定义): 如:filename ex1 “e:\\abc.txt”; LOG 如:file Log; Print(规定输出到OUTPUT窗) 如:file print;
Options说明 选项 说明 备注 DELIMITER/DLM=分隔符 指定分隔符,默认为空格 DLM=’,’; DROPOVER 当行长超过指定值,忽略超出部分 行长指定LINESIZE=n FLOWOVER 超过行长部分在下一行输出(默认) STOPOVER 超过行长时终止DATA步 DSD 规定数据项的分隔符,要用引号给出 默认分隔符为逗号 ENCODING=’value’ 指定输出外部文件所用编码 FILENAME=variable FILEVAR=variable LINESIZE/LS=n 系统使用的行长 LRECL=value 规定输出文件的逻辑记录长度 文件实际行长 MOD 输出到文件存在的行后面 OLD 替换文件原有内容 PAD/NOPAD 输出文件的数据行是否把空格算在NOPAD—变长度文件缺省方式 LRECL=指定的长度中 PAD—固定长度文件缺省方式 3.8.2例子
filename file ' E:\\dcai2007_lecture\\lecuture\\2011\\temp\%utf.txt'; data _null_; set sashelp.class;
file file encoding='utf-8'; put name weight; run;
filename=
/*该程序实行两个文件的输出:数据集a和文本文件filename.txt*/
filename files 'E:\\dcai2007_lecture\\lecuture\\2011\\temp\\filename.txt'; data a;