Ch4SAS的输入输出格式.ppt

上传人:本田雅阁 文档编号:2140888 上传时间:2019-02-21 格式:PPT 页数:36 大小:820.01KB
返回 下载 相关 举报
Ch4SAS的输入输出格式.ppt_第1页
第1页 / 共36页
Ch4SAS的输入输出格式.ppt_第2页
第2页 / 共36页
Ch4SAS的输入输出格式.ppt_第3页
第3页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Ch4SAS的输入输出格式.ppt》由会员分享,可在线阅读,更多相关《Ch4SAS的输入输出格式.ppt(36页珍藏版)》请在三一文库上搜索。

1、SAS格式与格式化输入,SAS的输入输出格式,SAS的变量包含数值型和字符型变量。 SAS系统对数值型、字符型和日期时间数据提供了许多输入、输出格式。 用户可以用FORMAT过程来定义自己的格式。 什么是格式(Format)? Format is an instruction the SAS System uses to display or write each value of a variable. SAS有输入格式和输出格式。输入格式通常在input语句中使用,输出格式通常在format语句中使用。,输入输出格式,原始数据值,SAS 变量的值,格式化的 SAS变量值,Informat

2、dollar10.,Format comma8.,548,231,25JAN2004,16095,01/25/2004,Informat Date9.,Format MMDDYY10.,$548,231,548231,Format,(输出格式),日期和时间数据的存储,SAS采用数值存储日期和时间形式的数据。 在默认情况下,SAS系统以0代表1960年1月1日0时。 其它日期在SAS系统中被存储为与该日期相差的天数。 例如,1960年1月3日,在系统中存为2。 2004年1月25日,在系统中存为16095。 注意:为了使数值型变量显示日期形式,必须使用日期型的输出格式,同样地为了以日期形式输入日

3、期必须使用日期型的输入格式。,输入格式,1、数值型变量 只介绍两个比较特殊的格式: COMMAw.d :用于数据中包含逗号(,)的数据形式 DOLLARw.d :用于数据前面有美元符($)的数据形式 说明: w:宽度,表示数值域所含的列数。小数点占一列。 d:小数位数。d可以省略。 例如: 5.2,表示该变量的数据占5列,其中后两位是小数位。 注意:一定要弄清数据占据的列数,否则极易出错。,data a; input x comma7. y comma7.; cards; 12,002 34,231 2,210 21,311 ; run; proc print; run;,OUTPUT: Ob

4、s x y 1 12002 34231 2 2210 21311,例1. 有如下两列数据,数据中包有逗号,请建立一个SAS数据集,变量为x、y。 12,002 34,231 2,210 21,311,数字7是怎么来的?,data a; input x comma7.2 y comma7.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,例2. 有如下两列数据,其中第一列后两位数字为小数,第二列后4位为小数,例如第一个数据12,00

5、2读入后应为120.02。请建立一个SAS数据集,变量为x、y。 12,002 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,例3. 有如下两列数据,数据中包有$和逗号,请建立一个SAS数据集,变量为x、y。(例如$12,002读入后应为12002 ) $12,002 $34,231 $2,210 $21,311,dat

6、a a; input x dollar8.2 y dollar8.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,例4. 有如下两列数据,其中第一列后两位数字为小数,第二列后4位为小数,例如第一个数据$12,002读入后应为120.02。请建立一个SAS数据集,变量为x、y。 $12,002 $34,231 $2,210 $21,311,2、字符型变量 只介绍一个格式: $CHARw. :读取包含空格的连续字符,例5.

7、下面是一些人名,请将其读入到一个变量NAME中,注意:姓和名之间有一个空格,建立的SAS数据集如右边的形式。 Bill Clinton George Bush Tony Blair Saddam Hussein Vladimir Putin,data a; input name $ char14.; 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 Sadd

8、am Hussein 5 Vladimir Putin,如果将char14.去掉,语句改为:input name $; 结果是什么样的呢?,3、日期数据 日期数据的读入通常需要运用日期型的格式。,输出格式,日期型数据的输入输出格式大部份是相同的,下面是几个常用的:,该例中日期数据的形式是什么样的?,例6. 有如下的日期数据,请建立一个SAS数据集EX6存储,并以日期的形式显示出来。,1Jan2002 03 Jan 2003 15/May/2004 12-FEB-2005 17*May* %2006 1*OCT*2007 30%sep%/2008,DD MMM YYYY 故选择DATEw.输入格

9、式,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 ; proc print; run;,1Jan2002 03 Jan 2003 15/May/2004 12-FEB-2005 17*May* %2006 1*OCT*2007 30%sep%/2008,例7. 有如下的日期数据,请建立一个SAS数据集EX7存储,并以日期的形式显示出来。,01312002 03122003 5

10、 13 2004 4 21 2005 5 25 2006 1/2/2007 3-24-2008,该例中日期数据的形式是什么样的?,MM DD YYYY 故选择MMDDYY10.输入格式,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 print; run

11、;,自定义格式,使用PROC FORMAT过程进行格式的自定义。,PROC FORMAT ; INVALUE 格式名 格式; VALUE 格式名 格式;,其中,invalue定义输入格式,value定义输出格式。 下面只介绍定义输出格式。,语法: PROC FORMAT; VALUE 自定义输出格式名字 定义的格式 ; RUN;,自定义输出格式名字:应符合SAS的命名要求,注意最后一个字符不能是数字。 定义的格式: 原始值=格式化的输出值 如:value testf 1-5=“1-5” 6-=10”; value ynf 1=“是” 2=“否”; value $grpf “A”=“试验组” “

12、B”=“对照组”;,例8. 下面是我们班“问卷调查”资料的部份数据。变量sex的赋值是:1=Male,2=Female,变量Band46的赋值是:A=增加, B=不变, C=减弱 ,请建立一个SAS数据集EX8,对变量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 cn

13、w2r03 1 173 62 B cnw2r04 1 168 57 B cnw2r05 2 155 45 B ; 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 qesfm

14、t; SET qespart; FORMAT Sex sexfmt. Band46 bandfmt. ; RUN; PROC Print; RUN;,格式化后打印输出的数据,对变量进行格式化,PROC FORMAT; VALUE heighfmt LOW - =180 ; RUN;,利用格式对连续型变量的离散化分组(频数表编制),例9. 对“问卷调查”资料中的身高编制频数表,组距取5CM,小于150为第一组,150-155为第二组,在数据步中运用格式: Format height heighfmt.; 加标签: label height =身高;,打印数据集的内容(部份),用FREQ过程生成的

15、频数表,SAS system Help “索引” 输入“FORMAT procedure”,SAS函数,1.SAS函数的定义 SAS函数是一个子程序,它由0个或几个自变量返回一个结果值。每个SAS函数都有一个关键词名字。 SAS函数的形式为: Function Name(argument,.) 例如: MEAN(x,y,z,a) SUM(x,y,z) MIN(SUM(x,y,z),1000),2. SAS函数的分类: SAS函数种类多,常用的有: 算术函数、数组函数、截取函数、数学函数、概率函数、分位数函数、非中心函数、样本统计函数、随机函数、字符函数、日期时间函数等。,3. 参数的表示法,三

16、种方式均可: Function Name(OF variable1-variablen) Function Name(OF variable variable .) Function Name(variable, variable, .) 例如: sum(of x1-x5) sum(of x1 x2 x3 x4 x5) sum(x1,x2,x3,x4,x5) 是等价的。,三. 函数的分类 SAS函数主要分为以下几类: 1、数学函数 abs():求绝对值 mod(var1,var2):求var1除以var2后的余数 sqrt():求平方根值 int():取整函数,截取小数部分 round(var

17、,规定):按规定四舍五入。规定取:0.1,0.01, log():计算以e为底的对数值 log10():计算以10为底的对数值 2、三角函数 3、概率分布函数,4、样本统计函数 max():求最大值 min():求最小值 mean():求均数 std():求标准差 sum():求和 5、随机函数 normal():产生一个正态分布的伪随机数 rannor():产生一个标准正态分布的随机数 6、字符函数 substr():从一个字符串中抽取或取代一个指定的子串 trim():去掉字符串尾部的空格 7、日期时间函数 year():从变量中抽取“年份”值 month():从变量中抽取“月份”值 da

18、y():返回变量的天数值 mdy(月,日,年):将变量转换成日期值形式 具体的函数请查阅: SAS Online Help-SAS Language-SAS Functions,列输入,列输入,列输入方式是用来读入严格按列排好的标准数据,Input 变量名 开始列-结束列 ;,条件:同一变量原始数据值在相同的列中 特点:1.可以按任意顺序读入数据 2.字符型数据中间可以有空格 3.可以重复读取原始数据中的某一部份 4.空格和小数点都作为缺失值处理 5.忽略开始和结尾部分的空格,例子,data a; input ques $ 1-17 age 3.1 gender$ 21-26 city $27

19、-34 ; cards; I am here for you 23male 大 连 Are you there 26female 重 庆 haha 22male 哈尔滨 yes i am here 30female ; proc print; run;,手机号码信息分解,手机号码一编码规则一般是:YYY-XXXX-ZZZZ,其YYY为号段;XXXX一般为所在地区编码;ZZZZ为对应的个人识别编号。说明: 移动:134-139、150、151、152、157、158、159、188 联通:130、131、132、155、156 电信:133、153、180、189,参考程序,data b; input x1 1-3 x2 4-7 x3 $8-11 x4 $1-11; cards; 1357851051X 1508311759X 1327313520X 1556443719X 1804346016X 1513441713X 1308279203X 1897876466X ; proc print; run;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1