sas的输入输出格式

上传人:san****019 文档编号:68322080 上传时间:2019-01-10 格式:PPT 页数:30 大小:447.45KB
返回 下载 相关 举报
sas的输入输出格式_第1页
第1页 / 共30页
sas的输入输出格式_第2页
第2页 / 共30页
sas的输入输出格式_第3页
第3页 / 共30页
sas的输入输出格式_第4页
第4页 / 共30页
sas的输入输出格式_第5页
第5页 / 共30页
点击查看更多>>
资源描述

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

1、SAS的输入输出格式,什么是格式(Format)? Format is an instruction the SAS System uses to display or write each value of a variable. 即:读入不同格式的数据,并按不同要求显示数据。 常见数据的数据格式: 字符型 数值型 日期时间型 用户自定义型( 用FORMAT过程定义) 注:除自定义类型外,其他类型的数据SAS系统均已定义好了相应的格式,只需要调用即可 输入格式和输出格式的使用:输入格式通常在input语句中使用,输出格式通常在format语句中使用。,1、字符型输入/输出格式,1、输入格式:

2、$w. 和 $CHARw. 共同特点:缺省值均为变量的长度 不同点: $w. :必须指定w的值,不保留字符串前的空格 $CHARw.:w的缺省值为8,保留字符串前的空格 2、输出格式:$w. 和 $CHARw. 共同特点:保留字符串前的空格 注:一个汉字占两个字节,例1. 下面是一些人名,请将其读入到一个变量NAME中,注意:姓和名之间有一个空格,建立的SAS数据集如右边的形式。 Bill Clinton George Bush Tony Blair Saddam Hussein Vladimir Putin,1、字符型输入/输出格式,data a; input name $ char14.;

3、 cards; Bill Clinton George Bush Tony Blair Saddam Hussein Vladimir Putin ; proc print; run;,Obs name 1 Bill Clinton 2 George Bush 3 Tony Blair 4 Saddam Hussein 5 Vladimir Putin,$CHARw. :读取包含空格的字符串 如果将char14.去掉,语句改为:input name $; 结果是什么样的呢?,2、数值型输入/输出格式,1、输入格式:w.d w.d:读入宽度为w的原始数据,并存为SAS数值,也能自动读入以浮点方式

4、表示的原始数据。 遵循以下原则:,2、数值型输入/输出格式,2、输出格式: Bestw.d, w.d 和 Ew. Bestw.d:系统默认格式(相当于后两种格式的自动识别)。w缺省值为12,最大值可达32 w.d:将数值用不超过d位小数及总宽度不超过w位的定点数表示 Ew. :用宽度不超过w的浮点数表示 注:宽度设置不合适时,自动调用SAS系统同宽度的Best格式表示。,1、特殊的输入格式 COMMAw.d :专为读入金额的数据而设置。读入宽度为w的字符串,并能自动去除逗号,空格,美圆符号和短横线,保留数字和小数点,还可将用括号括起来的数据记为负数。读入后按格式w.d记入数值。 DOLLARw

5、.d 为其别名。,2、数值型输入/输出格式,2、特殊的输出格式: COMMAw.d 和DOLLARw.d COMMAw.d :将数值以包含小数位数不超过d位的定点数表示,并在整数部分自右往左每三位用逗号分隔,总字符数不超过w。COMMA6.为其缺省设置。 DOLLARw.d 在COMMA表示的数据左侧加上美圆符号。,2、数值型输入/输出格式,data a; input x comma7. y comma7.; cards; 12,002 34,231 2,210 21,311 run; proc print; run;,OUTPUT: Obs x y 1 12002 34231 2 2210

6、21311,例2. 有如下两列数据,数据中包含有逗号,请建立一个SAS数据集,变量为x、y。 12,002 34,231 2,210 21,311,data a; input x comma7.2 y omma7.4; cards; 12,002 34,231 2,210 21,311 run; proc print; run;,OUTPUT: Obs x y 1 120.02 3.4231 2 22.10 2.1311,例3. 有如下两列数据,其中第一列后两位数字为小数,第二列后4位为小数,例如第一个数据12,002读入后应为120.02。请建立一个SAS数据集,变量为x、y。 12,002

7、 34,231 2,210 21,311,data a; input x dollar8. y dollar8.; cards; $12,002 $34,231 $2,210 $21,311 run; proc print; run;,OUTPUT: Obs x y 1 12002 34231 2 2210 21311,例4. 有如下两列数据,数据中包有$和逗号,请建立一个SAS数据集,变量为x、y。(例如$12,002读入后应为12002 ) $12,002 $34,231 $2,210 $21,311,data a; input x dollar8.2 y dollar8.4; cards

8、; $12,002 $34,231 $2,210 $21,311 run; proc print; run;,OUTPUT: Obs x y 1 120.02 3.4231 2 22.10 2.1311,例5. 有如下两列数据,其中第一列后两位数字为小数,第二列后4位为小数,例如第一个数据$12,002读入后应为120.02。请建立一个SAS数据集,变量为x、y。 $12,002 $34,231 $2,210 $21,311,日期,时间,日期时间型的数据均以与0值的差值数据存入计算机。 零点值的规定 日期型: 0 值(1960.1.1),其他日期为与其的差值 时间型: 0值(0时0分0秒) 日

9、期时间型 0值(1960年1月1日0时0分0秒),3、日期时间型输入/输出格式,1、日期输入格式 :YYMMDDw. 读入的数据形式为:yymmdd / yyyymmdd W:6-32,缺省为6 其他格式:MMDDYYw. 和DDMMYYw. MMDDYYw.读入的数据形式为:mmddyy/mmddyyyy DDMMYYw.读入的数据形式为:ddmmyy/ddmmyyyy,3、日期时间型输入/输出格式,2、日期输出格式 :YYMMDDxw. 读入的数据形式为:yymmdd / yyyymmdd W:2-10(x为N时,2-8),缺省为8 x B C D N P S 分隔符 空格 : - 无 .

10、 / YYMMDDw.相当于YYMMDDDw. 其他格式:MMDDYYxw. 和DDMMYYxw.,3、日期时间型输入/输出格式,3、特殊日期输入/输出格式:DATEw. 输入/输出日期的格式为:ddmmmyy/ddmmmyyyy 缺省方式为DATE7.,3、日期时间型输入/输出格式,3、特殊日期输入/输出格式:DATEw. 输入/输出日期的格式为:ddmmmyy/ddmmmyyyy 缺省方式为DATE7.,3、日期时间型输入/输出格式,4、时间输入格式:TIMEw. 读入的时间形式为:hh:mm:ss.ss 时分秒间的分隔符有:(:),(空格),(-);还有PM,AM 例:1 40 35.3

11、7 PM 读入格式time14. 49235.37 输出格式timeampm13.2 1:40:35.37 PM 5、时间输出格式:TIMEw.d d:可指明秒数包含的小数位数。 输出时总带有分隔符(:) 宽度不够时,先显示小时数,再是分钟,再是秒数。,3、日期时间型输入/输出格式,6、日期时间输入格式:DATETIMEw. 读入的日期时间形式为:ddmmmyy hh:mm:ss.ss/ddmmmyyyy hh:mm:ss.ss W:13-40,缺省18 7、日期时间输出格式:DATETIMEw.d 输出格式形式:ddmmmyy:hh:mm:ss.ss/ddmmmyyyy:hh:mm:ss.s

12、s W:7-40,缺省16 宽度不够时,从秒数开始截尾,宽度足够时(w=19+d)时自动显示四位数的年份。,3、日期时间型输入/输出格式,YEARCUTOFF=1920(此值可修改) 管理100年的时间:1920-2019 例:12/07/41 表示12/07/1941 18Dec15 表示18Dec2015,3、两位数年份输入,data b; input dd date15.; format dd date9.; cards; 1Jan2002 03 Jan 2003 15/May/2004 12-FEB-2005 17*May* %2006 1*OCT*2007 30%sep%/2008

13、; proc print; run;,1Jan2002 03 Jan 2003 15/May/2004 12-FEB-2005 17*May* %2006 1*OCT*2007 30%sep%/2008,01312002 03122003 5 13 2004 4 21 2005 5 25 2006 1/2/2007 3-24-2008,data b; input dd mmddyy10.; format dd mmddyy10.; cards; 01312002 03122003 5 13 2004 4 21 2005 5 25 2006 1/2/2007 3-24-2008 ; proc p

14、rint; run;,4、自定义格式,使用PROC FORMAT过程进行格式的自定义。,PROC FORMAT ; INVALUE 格式名 格式; VALUE 格式名 格式; RUN;,INVALUE:定义输入格式 VALUE : 定义输出格式。 下面只介绍定义输出格式(自定义格式比较特别)。,语法: PROC FORMAT; VALUE 自定义输出格式名字 定义的格式 ; RUN;,自定义输出格式名字:应符合SAS的命名要求,注意最后一个字符不能是数字。 定义的格式: 原始值=格式化的输出值,4、自定义格式,例6. 下面是 “问卷调查”资料的部份数据。变量sex的赋值是:1=Male,2=F

15、emale,变量Band46的赋值是:A=增加, B=不变, C=减弱 ,请建立一个SAS数据集EX,对变量sex、Band46进行格式化。,data qespart; input id$ sex height weight band46$; cards; cnw1r01 2 154 49 C cnw1r02 1 169 64 B cnw1r04 1 169 67 A cnw1r05 2 153 50 B cnw1r06 2 160 50 A cnw2r02 2 156 46 A cnw2r03 1 173 62 B cnw2r04 1 168 57 B cnw2r05 2 155 45 B

16、run; proc print; run;,PROC FORMAT; VALUE sexfmt 1=Male 2=Female ; VALUE $bandfmt A=增加 B=不变 C=减弱 ; RUN;,首先建立相应的输出格式,上面建立了两种类型的输出格式: 一种是数值型的,即sexfmt,要求=号左边为数值型数值或区间,如上面的1、2为数值; 另一种是字符型的,即$bandfmt,$表明该格式是字符型,要求=号左边为字符或字符区间,如A 、 B 、 C 。,DATA qesfmt; SET qespart; FORMAT Sex sexfmt. Band46 $bandfmt. ; RUN; PROC Print; RUN;,PROC FORMAT; VALUE hgtfmt

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

当前位置:首页 > 高等教育 > 大学课件

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