sas13变量输入输出格式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BESTw.格式 格式
没有对变量规定输出格式时,使用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=12570000; put @ 10 x best2.; run;
结果显示x=12345.12.
字符变量输入格式
$w.输入格式 输入格式
读入标准字符数据。 在读入字符值之前,$w.输入格式清除字符值开头的空格。 $w.输入格式把一个点(.)转换为空格,因为它把一个点看作缺失值。 例13.11 读入数据时,清除数据开头空格并将(.)转换为缺失值。 data; input name $5.; cards; xyz 输出结果: . xyz uvw ; uvw options nocenter; proc print noobs; run;
输出值为**.
Ew.输出格式 输出格式
例13.22 用科学记数法表示输出数值。 data; x=1257; put @ 10 x e10.; run; 输出值为1.257E+03,共占9列。
输入输出控制流程
输入-存储-输出控制流程
输入数据 输入格式 系统存储 输出格式 12234.1234 8.2 12234.12 8.2 12,234.12 Comma8.2 12234.12 comma8.2 $12,234.12 dollar8.2 12234.12 dollar8.2 输出数据 12234.12 12,234.12 $12,234.12
输出格式使用方法
PUT语句; PUT函数; DATA步中用FORMAT或ATTRIB语句; PROC步中用FORMAT或ATTRIB语句。
PUT语句 语句
例13.15 PUT语句中使用输出格式。 data; x=1145.32; put x dollar10.2; run; 结果为$1,145.32。输出格式带千分号和美元号。
永久性与临时性联系
DATA步规定的输入格式是永久联系的; PROC步规定的输入格式是临时联系的。
输入格式类型
数值输入格式; 字符输入格式; 日期时间输入格式; 竖式二进制数输入格式; 使用FORMAT过程自定义的输入格式。
数值变量输入格式
w.d输入格式 输入格式
读入标准数值数据。 例13.6 INPUT语句对变量使用列指针控制和w.d的输入格式。 INPUT X 8.2; INPUT X 1-10 .2; W.D输入格式把一个点(.)作为缺失值。 用W.D输入格式时,数值域尾部的空白不表示0,用BZ.输入 格式可以把尾部空白读为0.
例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 <ω>.<d> 选项说明:
$CHARw输入格式 输入格式
读含有空格的字符数据。$CHARw.输入格式除了不清除字符值开头的空 作格外,它等同于标准的$w.输入格式。 例13.12 保留开头和结尾的空格。 data; input name $char10.; cards; xyz . uvw 输出结果: ; xyz options nocenter; . proc print noobs; uvw run; INPUT语句采取自由格式输入时,INFORMAT或ATTRIB语句中不能使 用$CHAR.输入格式,因为SAS把空格看作数据行中数值间的分隔符。
Baidu Nhomakorabea
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;
PUT函数 函数
PUT函数对于将数值转换为字符,或者改变变量的字符输出格式是很有 用的。 例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. attrib sales1-sales12 format=comma10.2;例中,ATTRIB语句对 变量sales1至sales12规定输出格式COMMAw.d.
第13章 变量输入输出格式 章
清华大学经管学院 朱世武 Zhushw@sem.tsinghua.edu.cn Resdat样本数据:www.resset.cn 样本数据: 样本数据 SAS论坛: www.resset.cn 论坛: 论坛
本章内容包括: 本章内容包括:
输入格式; 输出格式; SAS SAS日期时间存贮方式; 日期时间输入格式; 日期时间输出格式; 缺失值处理。
输出格式类型
数值输出格式; 字符输出格式; 日期时间输出格式; ; 使用FORMAT过程创建的自定义输出格式。
输出格式 w.d
描述 输出标准数值数据 EBSTw. 选择最佳表示法 BINARYw. 转换数值为二进制表示法 COMMAw.d 用含有逗号, 小数点的格式来输出数值 COMMAXw.d 用含有逗号和小数的格式来输出数值, 逗号和小数 点互换 DOLLARw.d 用含有美元号, 逗号和小数点的格式来输出数值 DOLLARXw.d 用含有美元号,逗号和小数点的格式来输出数值, 逗号和小数点互换 Ew. 用科学E表示法输出值
字符变量输出格式
$w.输出格式 输出格式
$w.是最常用的字符数据输出格,w值给出输出字符值的列数。 例13.24 $w.和列输出格式产生同样效果。 data ; name='ABC'; put @10 name $3.; put name $10-12; run; 例中,都输出值为ABC.
日期时间存贮方式
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; 结果显示x=12345.1234. 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.1234 22,345.1234 ; run;
SAS日期值存贮方式 日期值存贮方式 SAS系统存贮日期值为1960年1月1日到这个日期之间的天数。 日期存贮方式举例
日期 1960年1月1日 1962年3月3日 1985年8月4日 2002年10月1日 1776年7月4日 系统存贮的天数 0 792 9347 15614 -67019
例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;
$ INFORMAT W D 规定为字符输出格式 规定有效SAS输出格式 规定输出数据的列数 规定数值输出格式中保留小数的位数
通用规则: 所有输出格式必须包含一个点(.)作为名字的一部分; 省略W和D的值时,使用系统的缺省值; 无论怎样规定输出格式中的小数位,输出格式都不会影响存贮 的数据值; 规定的输出格式宽度太窄小时,对字符格式截去右边的字符, 对数值格式转换为BESTw.的格式; 使用一个不协调的输出格式时,SAS系统首先试着使用其它类 型的类似格式。如果行不通,将输出一个错误信息在SAS日志。
例13.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.
输入格式使用方法
INPUT语句; INPUT函数; DATA DATA步中用INFORMAT或ATTRIB语句; INFORMAT ATTRIB PROC步中用INFORMAT或ATTRIB语句。
INPUT语句 语句
例13.1 列格式输入。 input @6 date ddmmyy10. @+1 stocd $ 8. oppr 8.2; 例中,从第6列开始以DDMMYY10.格式读入变量 DATE, 第7列开始以长度为8的字符格式读入变量 STOCD,然后以数值格式8.2读入变量OPPR。
输入格式
输入格式是SAS系统用来读入数据值的一个指令。 输入格式形式 <$> INFORMAT <W>.<D> 选项说明:
$ INFORMAT W D 规定为字符输入格式 规定有效SAS输入格式 规定输入数据的列数 规定数值输入格式中保留小数的位数
通用规则: 所有输入格式必须包含一个点(.)作为名字的一部分; 对于省略W和D值的输入格式,使用系统缺省值。
宽度 缺省宽度 1-32 1-32 1-64 2-32 2-32 1-32 1-32 7-32 12 8 6 6 1
1 12
数值变量输出格式
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.2; 例中,两个语句等价。
步中用INFORMAT语句或 语句或ATTRIB语句 在DATA步中用 步中用 语句或 语句
例13.5 DATA步中用INFORMAT语句。 data a; input x; informat x comma12.4; cards; 12,345.1234 22,345.1234 ; run; 例中,最好就是只用INFORMAT语句,不要用ATTRIB,这样可以少记 些东西。