变量输入输出格式_第1页
变量输入输出格式_第2页
变量输入输出格式_第3页
变量输入输出格式_第4页
变量输入输出格式_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、变量输入输出格式第1页,共43页,2022年,5月20日,5点42分,星期二本章内容包括: 输入格式; 输出格式; SAS日期时间存贮方式; 日期时间输入格式; 日期时间输出格式; 缺失值处理。第2页,共43页,2022年,5月20日,5点42分,星期二输入格式 输入格式是SAS系统用来读入数据值的一个指令。输入格式形式 INFORMAT .选项说明:通用规则: 所有输入格式必须包含一个点(.)作为名字的一部分; 对于省略W和D值的输入格式,使用系统缺省值。第3页,共43页,2022年,5月20日,5点42分,星期二输入格式使用方法 INPUT语句; INPUT函数; DATA步中用INFOR

2、MAT或ATTRIB语句; PROC步中用INFORMAT或ATTRIB语句。第4页,共43页,2022年,5月20日,5点42分,星期二INPUT语句 例13.1 列格式输入。input 6 date ddmmyy10. +1 stocd $ 8. oppr 8.2;例中,从第6列开始以DDMMYY10.格式读入变量DATE, 第7列开始以长度为8的字符格式读入变量STOCD,然后以数值格式8.2读入变量OPPR。第5页,共43页,2022年,5月20日,5点42分,星期二INPUT函数 例13.2 字符转换数值。data;x=98.6;y=input(x, 4.);put x= y=;ru

3、n;例中,INPUT函数和w.d输入格式将X的字符值转换为一个数值Y.INPUT函数对于数据的转换是很有用的,当然,有更简单的方法将字符值转换为数值。data;x=98.6;y=x-0;put x= y=;run; 第6页,共43页,2022年,5月20日,5点42分,星期二例13.3 数值转换为字符时会产生不正确结果。data;x=2557898;y=input(x,$8.);put y;run;例中,产生的结果为255, 不正确。第7页,共43页,2022年,5月20日,5点42分,星期二例13.4 PUT函数将数值转换为字符。data;x=2557898;y=put(x, $8.);pu

4、t y;run;例中,用PUT函数得到正确结果,即字符型2557898.data;x=2557898;y=put(x, $3.);put y;run;例中,Y的结果为3E6.第8页,共43页,2022年,5月20日,5点42分,星期二在DATA步中用INFORMAT语句或ATTRIB语句 例13.5 DATA步中用INFORMAT语句。data a;input x;informat x comma12.4;cards;12,345.123422,345.1234;run;例中,最好就是只用INFORMAT语句,不要用ATTRIB,这样可以少记些东西。 第9页,共43页,2022年,5月20日,

5、5点42分,星期二永久性与临时性联系 DATA步规定的输入格式是永久联系的; PROC步规定的输入格式是临时联系的。 第10页,共43页,2022年,5月20日,5点42分,星期二输入格式类型 数值输入格式; 字符输入格式; 日期时间输入格式; 竖式二进制数输入格式; 使用FORMAT过程自定义的输入格式。 第11页,共43页,2022年,5月20日,5点42分,星期二w.d输入格式 读入标准数值数据。例13.6 INPUT语句对变量使用列指针控制和w.d的输入格式。INPUT X 8.2;INPUT X 1-10 .2;W.D输入格式把一个点(.)作为缺失值。用W.D输入格式时,数值域尾部的

6、空白不表示0,用BZ.输入格式可以把尾部空白读为0.数值变量输入格式第12页,共43页,2022年,5月20日,5点42分,星期二COMMAw.d 输入格式 COMMAw.d输入格式读入包含字符的数值。数值数据内可能包含的字符有: 逗号; 空格; $; %; 破折号; 圆括号等。例13.8 读入带千分号的数据。data a;input x comma12.2;cards;12,522.2315;run;第13页,共43页,2022年,5月20日,5点42分,星期二例13.10 数值变量输入格式应用举例。data ;informat x 8.2;x=12345.1234;put x=; run;

7、data a;x=12345.1234;informat x 12.4;format x 8.2;put x=;run;data a;input x;informat x comma12.4;cards;12,345.123422,345.1234;run;结果显示x=12345.1234.结果显示x=12345.12.第14页,共43页,2022年,5月20日,5点42分,星期二$w.输入格式 读入标准字符数据。在读入字符值之前,$w.输入格式清除字符值开头的空格。$w.输入格式把一个点(.)转换为空格,因为它把一个点看作缺失值。例13.11 读入数据时,清除数据开头空格并将(.)转换为缺失

8、值。data;input name $5.;cards;xyz.uvw;options nocenter;proc print noobs;run;输出结果:xyzuvw字符变量输入格式 第15页,共43页,2022年,5月20日,5点42分,星期二$CHARw输入格式 读含有空格的字符数据。$CHARw.输入格式除了不清除字符值开头的空作格外,它等同于标准的$w.输入格式。例13.12 保留开头和结尾的空格。data;input name $char10.;cards;xyz .uvw;options nocenter;proc print noobs;run;INPUT语句采取自由格式输入

9、时,INFORMAT或ATTRIB语句中不能使用$CHAR.输入格式,因为SAS把空格看作数据行中数值间的分隔符。输出结果:xyz.uvw第16页,共43页,2022年,5月20日,5点42分,星期二例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;第17页,共43页,2022年,5月20日,5点42分,星期二输出格式 输出格式是SAS系统用来输出数据值的一个指令。 输出格式形式 FOR

10、MAT .选项说明: 第18页,共43页,2022年,5月20日,5点42分,星期二通用规则: 所有输出格式必须包含一个点(.)作为名字的一部分; 省略W和D的值时,使用系统的缺省值; 无论怎样规定输出格式中的小数位,输出格式都不会影响存贮的数据值; 规定的输出格式宽度太窄小时,对字符格式截去右边的字符,对数值格式转换为BESTw.的格式; 使用一个不协调的输出格式时,SAS系统首先试着使用其它类型的类似格式。如果行不通,将输出一个错误信息在SAS日志。第19页,共43页,2022年,5月20日,5点42分,星期二输出格式使用方法 PUT语句; PUT函数; DATA步中用FORMAT或ATT

11、RIB语句; PROC步中用FORMAT或ATTRIB语句。第20页,共43页,2022年,5月20日,5点42分,星期二PUT语句 例13.15 PUT语句中使用输出格式。data;x=1145.32;put x dollar10.2;run;结果为$1,145.32。输出格式带千分号和美元号。第21页,共43页,2022年,5月20日,5点42分,星期二PUT函数 PUT函数对于将数值转换为字符,或者改变变量的字符输出格式是很有用的。例13.16 PUT函数中使用输入格式。data;cc=16;cchex=put(cc,hex3.);put cc hex3.;run;结果为010.例中,转

12、换数值变量cc的值为三个字符的十六进制表达式。data;cc=16;cc=put(cc,3.);run;例中,将数值CC转换为字符值。第22页,共43页,2022年,5月20日,5点42分,星期二DATA步中用FORMAT或ATTRIB语句 例13.17 DATA步中用FORMAT或ATTRIB语句。format sales1-sales12 comma10.2;例中,FORMAT语句对变量sales1至sales12规定输出格式COMMAw.d.attrib sales1-sales12 format=comma10.2;例中,ATTRIB语句对变量sales1至sales12规定输出格式C

13、OMMAw.d.第23页,共43页,2022年,5月20日,5点42分,星期二输出格式类型 数值输出格式; 字符输出格式; 日期时间输出格式; 使用FORMAT过程创建的自定义输出格式。第24页,共43页,2022年,5月20日,5点42分,星期二第25页,共43页,2022年,5月20日,5点42分,星期二w.d输出格式 输出标准数值数据。对超出输出格式宽度的数值进行四舍五入。数值过大时,使用BESTw.输出。例13.18 w.d输出格式应用。data a; x=23.45; put x 6.3;run;结果是23.450。例13.19 使用列输出法等价于使用指针控制和w.d的格式。put

14、x 1-8 .2;put 1 x 8.2;例中,两个语句等价。数值变量输出格式第26页,共43页,2022年,5月20日,5点42分,星期二BESTw.格式 没有对变量规定输出格式时,使用BEST.的格式。SAS在规定的宽度列数中选择能够给出该值最多信息的表示法作为输出格式。SAS仍存贮原来的完整数值。第27页,共43页,2022年,5月20日,5点42分,星期二例13.20 用不同的BESTw.形式输出时,显示结果不一样,但在SAS存贮的都是原来的完整数值。data;x=12570000;put 10 x best6.;run;输出值为1.26E6。正确地输出这个值需要8列,使用E表示法把这

15、个值压缩为6列.data;x=12570000;put 10 x best3.;run; 输出值为1E6.data;x=12570000;put 10 x best2.;run; 输出值为*.第28页,共43页,2022年,5月20日,5点42分,星期二Ew.输出格式 例13.22 用科学记数法表示输出数值。data;x=1257;put 10 x e10.;run;输出值为1.257E+03,共占9列。第29页,共43页,2022年,5月20日,5点42分,星期二输入输出控制流程 输入-存储-输出控制流程 第30页,共43页,2022年,5月20日,5点42分,星期二$w.输出格式 $w.是

16、最常用的字符数据输出格,w值给出输出字符值的列数。例13.24 $w.和列输出格式产生同样效果。data ;name=ABC;put 10 name $3.;put name $10-12;run;例中,都输出值为ABC.字符变量输出格式 第31页,共43页,2022年,5月20日,5点42分,星期二日期时间存贮方式 SAS日期值存贮方式SAS系统存贮日期值为1960年1月1日到这个日期之间的天数。日期存贮方式举例第32页,共43页,2022年,5月20日,5点42分,星期二例13.25 表中天数的计算程序。data;date=mdy(1,1,1960);put date 8.;date=md

17、y(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;第33页,共43页,2022年,5月20日,5点42分,星期二SAS日期时间值存贮方式 SAS存贮时间值从0时开始以秒记数。日期时间值存贮方式举例第34页,共43页,2022年,5月20日,5点42分,星期二例13.26 表中秒数的计算程序。data;hms=hms (21,50,51); put hms=;x=21*60*60+50*60+51;put

18、 x=; date=mdy(10,1,2002);put date=;dhms=dhms (date,21,50,51); put dhms=;y=date*24*3600+x;put y=;run;第35页,共43页,2022年,5月20日,5点42分,星期二日期时间输入格式 输入格式描述例子宽度范围缺省范围datew.Ddmmyy1jan200301jan031-jan-20037-327datetimew.Ddmmyy hh:mm:ss.ss01jan03:8:56:10.201jan2003/8:56:1013-4018yymmddw.03 01 0103/01/01030101200

19、301016-326第36页,共43页,2022年,5月20日,5点42分,星期二应用举例 例13 27 使用SAS日期时间的输入格式。data a;input date mmddyy10.;cards;10-01-200210/01/2002;run;第37页,共43页,2022年,5月20日,5点42分,星期二日期时间输出格式 假定日期时间值为2003年3月27日12点5分5.49秒, 星期四,为2003年的第86天,第1季度,所在周的第5天。 输出格式描述例子宽度范围缺省范围datew.Ddmmmyy27MAR200327MAR0327MAR5-97datetimew.dDdmmyy:H

20、h:Mm:Ss.Ss27MAR03:12:05:05.4927MAR03:127-4016yymmddw.Yymmdd2003-03-2703-03-27032-108第38页,共43页,2022年,5月20日,5点42分,星期二例13.28 使用SAS日期时间的输出格式。data a;input date mmddyy10.;format date yymmdd10.;put date=;cards;10-01-200210/01/2002;run;data a;input date mmddyy10.;format date date9.;put date=;cards;10-01-200210/01/2002;run;data ;x=put(today(), date7.);put x;y=put(today(),8.0); put y;z=today(); put z;u=put(15260, yymmdd10.);put u;v=put(15260, date9.);put v;run;显示结果:19SEP0215602156022001-10-1212OCT2001第39页,共43页,2022年,5月20日,5点42分,星期二data;x=13807;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论