SAS变量输入输出格式

上传人:油条 文档编号:48514732 上传时间:2018-07-16 格式:PPT 页数:95 大小:2.45MB
返回 下载 相关 举报
SAS变量输入输出格式_第1页
第1页 / 共95页
SAS变量输入输出格式_第2页
第2页 / 共95页
SAS变量输入输出格式_第3页
第3页 / 共95页
SAS变量输入输出格式_第4页
第4页 / 共95页
SAS变量输入输出格式_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《SAS变量输入输出格式》由会员分享,可在线阅读,更多相关《SAS变量输入输出格式(95页珍藏版)》请在金锄头文库上搜索。

1、第13章 变量输入输出格式清华大学经管学院 朱世武本章内容包括: 输入格式; 输出格式; SAS日期时间存贮方式; 日期时间输入格式; 日期时间输出格式; 缺失值处理。输入格式 输入格式是SAS系统用来读入数据值的一个指令。输入格式形式INFORMAT .选项说明:通用规则: 所有输入格式必须包含一个点(.)作为名字的一部分; 对于省略W和D值的输入格式,使用系统缺省值。输入格式使用方法 INPUT语句; INPUT函数; DATA步中用INFORMAT或ATTRIB语句; PROC步中用INFORMAT或ATTRIB语句。INPUT语句 例13.1 列格式输入。input 6 date dd

2、mmyy10. +1 stocd $ 8. oppr 8.2;例中,从第6列开始以DDMMYY10.格式读入变量 DATE, 第7列开始以长度为8的字符格式读入变量 STOCD,然后以数值格式8.2读入变量OPPR。INPUT函数 例13.2 字符转换数值。 data; x=98.6; y=input(x, 4.); put x= y=; run; 例中,INPUT函数和w.d输入格式将X的字符值转换为一个数值Y. INPUT函数对于数据的转换是很有用的,当然,有更简单的方法将字符 值转换为数值。 data; x=98.6; y=x-0; put x= y=; run; 例13.3 数值转换为

3、字符时会产生不正确结果。 data; x=2557898; y=input(x,$8.); put y; run; 例中,产生的结果为255, 不正确。例13.4 PUT函数将数值转换为字符。 data; x=2557898; y=put(x, $8.); put y; run; 例中,用PUT函数得到正确结果,即字符型2557898. data; x=2557898; y=put(x, $3.); put y; run; 例中,Y的结果为3E6.在DATA步中用INFORMAT语句或ATTRIB语句 例13.5 DATA步中用INFORMAT语句。 data a; input x; info

4、rmat x comma12.4; cards; 12,345.1234 22,345.1234 ; run; 例中,最好就是只用INFORMAT语句,不要用ATTRIB,这样可以少记些东西。 永久性与临时性联系 DATA步规定的输入格式是永久联系的; PROC步规定的输入格式是临时联系的。 输入格式类型 数值输入格式; 字符输入格式; 日期时间输入格式; 竖式二进制数输入格式; 使用FORMAT过程自定义的输入格式。 w.d输入格式 读入标准数值数据。例13.6 INPUT语句对变量使用列指针控制和w.d的输入格式。 INPUT X 8.2; INPUT X 1-10 .2; W.D输入格式

5、把一个点(.)作为缺失值。 用W.D输入格式时,数值域尾部的空白不表示0,用BZ.输入 格式可以把尾部空白读为0.数值变量输入格式COMMAw.d 输入格式 COMMAw.d输入格式读入包含字符的数值。数值数据内可能包含的字符有: 逗号; 空格; $; %; 破折号; 圆括号等。例13.8 读入带千分号的数据。 data a; input x comma12.2; cards; 12,522.2315 ; run;例13.10 数值变量输入格式应用举例。 data ; informat x 8.2; x=12345.1234; put x=; run;data a; x=12345.1234;

6、 informat x 12.4; format x 8.2; put x=; run;data a; input x; informat x comma12.4; cards; 12,345.1234 22,345.1234 ; run;结果显示x=12345.1234.结果显示x=12345.12.$w.输入格式 读入标准字符数据。 在读入字符值之前,$w.输入格式清除字符值开头的空格。 $w.输入格式把一个点(.)转换为空格,因为它把一个点看作缺失值。例13.11 读入数据时,清除数据开头空格并将(.)转换为缺失值。 data; input name $5.; cards; xyz .

7、uvw ; options nocenter; proc print noobs; run;输出结果: xyzuvw字符变量输入格式 $CHARw输入格式 读含有空格的字符数据。$CHARw.输入格式除了不清除字符值开头的空 作格外,它等同于标准的$w.输入格式。例13.12 保留开头和结尾的空格。 data; input name $char10.; cards; xyz . uvw ; options nocenter; proc print noobs; run; INPUT语句采取自由格式输入时,INFORMAT或ATTRIB语句中不能使 用$CHAR.输入格式,因为SAS把空格看作数

8、据行中数值间的分隔符。输出结果: xyz . uvw例13.13 不能放放在一起使用的语句。 informat x $char12.; input x y z;例13.14直接赋值为字符型变量。 data a; x1=st92;x2=st92; informat x $8. ;x3=“12,345.1234“; run;输出格式 输出格式是SAS系统用来输出数据值的一个指令。 输出格式形式 FORMAT .选项说明: 通用规则: 所有输出格式必须包含一个点(.)作为名字的一部分; 省略W和D的值时,使用系统的缺省值; 无论怎样规定输出格式中的小数位,输出格式都不会影响存贮 的数据值; 规定的输

9、出格式宽度太窄小时,对字符格式截去右边的字符, 对数值格式转换为BESTw.的格式; 使用一个不协调的输出格式时,SAS系统首先试着使用其它类 型的类似格式。如果行不通,将输出一个错误信息在SAS日志。输出格式使用方法 PUT语句; PUT函数; DATA步中用FORMAT或ATTRIB语句; PROC步中用FORMAT或ATTRIB语句。PUT语句 例13.15 PUT语句中使用输出格式。 data; x=1145.32; put x dollar10.2; run; 结果为$1,145.32。输出格式带千分号和美元号。PUT函数 PUT函数对于将数值转换为字符,或者改变变量的字符输出格式是

10、很有 用的。例13.16 PUT函数中使用输入格式。 data; cc=16; cchex=put(cc,hex3.); put cc hex3.; run; 结果为010. 例中,转换数值变量cc的值为三个字符的十六进制表达式。 data; cc=16; cc=put(cc,3.); run; 例中,将数值CC转换为字符值。DATA步中用FORMAT或ATTRIB语句 例13.17 DATA步中用FORMAT或ATTRIB语句。 format sales1-sales12 comma10.2; 例中,FORMAT语句对变量sales1至sales12规定输出格式 COMMAw.d.attri

11、b sales1-sales12 format=comma10.2;例中,ATTRIB语句对 变量sales1至sales12规定输出格式COMMAw.d.输出格式类型 数值输出格式; 字符输出格式; 日期时间输出格式; 使用FORMAT过程创建的自定义输出格式。w.d输出格式 输出标准数值数据。对超出输出格式宽度的数值进行四舍五入。数 值过大时,使用BESTw.输出。例13.18 w.d输出格式应用。 data a;x=23.45;put x 6.3; run; 结果是23.450。例13.19 使用列输出法等价于使用指针控制和w.d的格式。 put x 1-8 .2; put 1 x 8.

12、2; 例中,两个语句等价。数值变量输出格式BESTw.格式 v 没有对变量规定输出格式时,使用BEST.的格式。SAS在规 定的宽度列数中选择能够给出该值最多信息的表示法作为输出 格式。SAS仍存贮原来的完整数值。例13.20 用不同的BESTw.形式输出时,显示结果不一样,但在SAS存贮 的都是原来的完整数值。data; x=12570000; put 10 x best6.; run; 输出值为1.26E6。正确地输出这个值需要8列,使用E表示法把这个值压 缩为6列. data; x=12570000; put 10 x best3.; run; 输出值为1E6.data; x=12570

13、000; put 10 x best2.; run; 输出值为*.Ew.输出格式 例13.22 用科学记数法表示输出数值。 data; x=1257; put 10 x e10.; run; 输出值为1.257E+03,共占9列。输入输出控制流程 输入-存储-输出控制流程 $w.输出格式 $w.是最常用的字符数据输出格,w值给出输出字符值的列数。例13.24 $w.和列输出格式产生同样效果。 data ; name=ABC; put 10 name $3.; put name $10-12; run; 例中,都输出值为ABC.字符变量输出格式 日期时间存贮方式 SAS日期值存贮方式 SAS系统

14、存贮日期值为1960年1月1日到这个日期之间的天数。日期存贮方式举例例13.25 表中天数的计算程序。 data; date=mdy(1,1,1960); put date 8.; date=mdy(3,3,1962); put date 8.; date=mdy(8,4,1985); put date 8.; date=mdy(10,1,2002); put date 8.; date=mdy(7,4,1776); put date 8.; run;SAS日期时间值存贮方式 SAS存贮时间值从0时开始以秒记数。日期时间值存贮方式举例例13.26 表中秒数的计算程序。 data; hms=hm

15、s (21,50,51); put hms=; x=21*60*60+50*60+51; put x=;date=mdy(10,1,2002); put date=; dhms=dhms (date,21,50,51); put dhms=; y=date*24*3600+x; put y=; run;日期时间输入格式 输入格式描述例子宽度范围缺省范围 datew.Ddmmyy1jan2003 01jan03 1-jan-20037-327datetimew. Ddmmyy hh:mm:ss.ss01jan03:8:56:10.2 01jan2003/8:56:1013-4018yymmddw.03 01 01 03/01/01 030101 200301016-326应用举例 例13 27 使用SAS日期时间的输入格式。 data a; input date mmddyy10.; cards; 10-01-2002 10/01/2002 ; run;日期时间输出格式 v 假定日期时间值为2003年3月27日12点5分5.49秒, 星期四, 为2003年的第86天,第1季度,所在周的第5天。 输出格式描述例子宽度范围缺省范围 datew.Ddmmmyy27MAR2003 27MAR03 27MAR5-97datetimew.d Ddmmyy:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号