收藏 分享(赏)

5.SAS格式及格式化输入.ppt

上传人:精品资料 文档编号:11246018 上传时间:2020-02-24 格式:PPT 页数:73 大小:1.03MB
下载 相关 举报
5.SAS格式及格式化输入.ppt_第1页
第1页 / 共73页
5.SAS格式及格式化输入.ppt_第2页
第2页 / 共73页
5.SAS格式及格式化输入.ppt_第3页
第3页 / 共73页
5.SAS格式及格式化输入.ppt_第4页
第4页 / 共73页
5.SAS格式及格式化输入.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

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

2、548,23125JAN2004 16095 01/25/2004InformatDate9.FormatMMDDYY10.$548,231 548231Informat(输入格式)Format(输出格式)Slide 4p输入格式 输入格式是 SAS系统用来读入数据值的一个指令。 输入 格式形式INFORMAT . 选项说明: 通用规则:所有输入格式必须包含一个点 (.)作为名字的一部分;对于省略 W和 D值的输入格式,使用系统缺省值。Slide 5输入格式使用方法 INPUT语句; INPUT函数; INFORMAT或 ATTRIB语句;Slide 6INPUT语句,最常用情况,即格式化输入

3、 格式化输入方式是 INPUT语句读取非标准数据的唯一方法。即在变量名后面规定输入格式。这种输入方式不仅给出了该输入数据所对应的类型,而且给出了输入数据所在列的长度。语句格式:INPUT variable informat. ; INPUT (variable-list) (informat-list) ; INPUT (variable-list) ( informat.); 其中:n*规定在输入列表中后面的输入格式重复 n次。Slide 7INPUT语句 例中,从第 1列开始以 $8. 格式读入变量 name,第 14列开始以yymmdd10.格式读入变量 birth, 右移 1列,从第

4、25列开始以 5.1读入变量 height 例如,data a;input name $11. 14 birth yymmdd10. +1 height 5.1;cards;Wanghuacong 1995/06/09 178.5Zuosha 1996/12/15 165.8;proc print;run;Slide 8INPUT函数 例 , 字符 转换 数值data;x=39.8;y=input(x, 4.1);put x= y=;run;例中, INPUT函数将字符变量 X的值 39.8,通过输入格式 4.1 转换为一个数值 39.8,赋给变量 Y,因此 Y为数值型变量Slide 9 例,

5、 数值转换为字符时会产生不正确结果例中,产生的结果为 255, 不正确;除非增加输入格式的长度,如 y=input(x, $15.);此时,最常用的做法是使用 put函数 ,而不是 input函数data;x=2557898;y=put(x, $8.);put y;run;data;x=2557898;y=input(x, $8.);put y;run;Slide 10用 INFORMAT语句或 ATTRIB语句 例, DATA步中用 INFORMAT语句data a;input name $11. birth height;informat birth yymmdd10. height 5.

6、1;cards;Wanghuacong 1995/06/09 178.5Zuosha 1996/12/15 165.8;proc print;run;Slide 11输入格式1、数值型变量输入格式几个常用的格式:w.d :读入标准数值数据COMMAw.d :用于数据中包含逗号 (,)的数据形式DOLLARw.d :用于数据前面有美元符 ($)的数据形式说明:w:宽度,表示数值域所含的列数。小数点占一列。d:小数位数。 d可以省略。例如:5.2,表示该变量的数据占 5列,其中后两位是小数位。注意:一定要弄清数据占据的列数,否则极易出错。Slide 12data a;input x comma7.

7、 y comma7.;cards;12,002 34,2312,210 21,311;run;proc print;run;OUTPUT:Obs x y1 12002 342312 2210 21311例 1. 有如下两列数据,数据中包有逗号,请建立一个SAS数据集,变量为 x、 y。12,002 34,2312,210 21,311数字 7是怎么来的?Slide 13data a;input x comma7.2 y comma7.4;cards;12,002 34,2312,210 21,311;run;proc print;run;OUTPUT:Obs x y1 120.02 3.423

8、12 22.10 2.1311例 2. 有如下两列数据,其中第一列后两位数字为小数,第二列后 4位为小数,例如第一个数据 12,002读入后应为120.02。请建立一个 SAS数据集,变量为 x、 y。12,002 34,2312,210 21,311Slide 14data a;input x dollar8. y dollar8.;cards;$12,002 $34,231$2,210 $21,311;run;proc print;run;OUTPUT:Obs x y1 12002 342312 2210 21311例 3. 有如下两列数据,数据中包有 $和逗号,请建立一个 SAS数据集,

9、变量为 x、 y。 (例如 $12,002读入后应为 12002 )$12,002 $34,231$2,210 $21,311Slide 15data a;input x dollar8.2 y dollar8.4;cards;$12,002 $34,231$2,210 $21,311;run;proc print;run;OUTPUT:Obs x y1 120.02 3.42312 22.10 2.1311例 4. 有如下两列数据,其中第一列后两位数字为小数,第二列后 4位为小数,例如第一个数据 $12,002读入后应为 120.02。请建立一个 SAS数据集,变量为 x、 y。$12,00

10、2 $34,231$2,210 $21,311Slide 16$w. 输入格式 读入标准字符数据。在读入字符值之前, $w.输入格式清除字符值开头的空格。$w.输入格式把一个点 (.)转换为空格,因为它把一个点看作缺失值。输出结果:xyzuvw2.字符型变量输入格式 例, 读入数据时,清除数据开头空格并将( .)转换为缺失值。Data a;input name $5.;cards;xyz.uvw;options nocenter;proc print noobs;run;Slide 17$CHARw. 输入格式 读含有空格的字符数据。 $CHARw.输入格式除了不清除字符值开头的空作格外,它等

11、同于标准的 $w.输入格式。例, 保留开头和结尾的空格。data;input name $char10.;cards;xyz . uvw ;options nocenter;proc print noobs;run;INPUT语句采取自由格式输入时, INFORMAT或 ATTRIB语句中不能使用 $CHAR.输入格式,因为 SAS把空格看作数据行中数值间的分隔符。输出结果:xyz.uvwSlide 18$CHARw. :读取包含空格的连续字符 例 5. 下面是一些人名,请将其读入到一个变量 NAME中,注意:姓和名之间有一个空格,建立的 SAS数据集如右边的形式。Bill ClintonGe

12、orge BushTony BlairSaddam Hussein Vladimir PutinObs name1 Bill Clinton2 George Bush3 Tony Blair4 Saddam Hussein5 Vladimir PutinSlide 19data a;input name $ char14.;cards;Bill ClintonGeorge BushTony BlairSaddam Hussein Vladimir Putin;proc print;run;Obs name1 Bill Clinton2 George Bush3 Tony Blair4 Sadd

13、am Hussein5 Vladimir Putin如果将 char14.去掉,语句改为: input name $;结果是什么样的呢?Slide 20日期和时间数据的存储SAS采用 数值 存储日期和时间形式的数据。在默认情况下 , SAS系统以 0代表 1960年 1月 1日 0时 。其它日期 在 SAS系统中被存储为 与该日期相差的天数 。例如 , 1960年 1月 3日,在系统中存为 2。2004年 1月 25日,在系统中存为 16095。注意 : 为了使数值型变量显示日期形式,必须使用日期型的输出格式,同样地为了以日期形式输入日期必须使用日期型的输入格式。 3、日期数据输入格式Slid

14、e 21日期数据的读入通常需要运用日期型的格式Slide 22日期时间输出格式日期型数据的输入输出格式大部份是相同的,下面是几个常用的:Slide 23该例中日期数据的形式是什么样的?例 6. 有如下的日期数据,请建立一个 SAS数据集 EX6存储,并以日期的形式显示出来。1Jan200203 Jan 200315/May/200412-FEB-200517*May* %20061*OCT*200730%sep%/2008 DD MMM YYYY故选择 DATEw.输入格式Slide 24data b;input dd date15.;format dd date9.;cards;1Jan20

15、0203 Jan 200315/May/200412-FEB-200517*May* %20061*OCT*200730%sep%/2008;proc print;run;Obs dd1 01JAN20022 03JAN20033 15MAY20044 12FEB20055 17MAY20066 01OCT20077 30SEP2008Slide 25例 7. 有如下的日期数据,请建立一个 SAS数据集 EX7存储,并以日期的形式显示出来。01312002031220035 13 20044 21 20055 25 20061/2/20073-24-2008该例中日期数据的形式是什么样的?MM

16、 DD YYYY故选择 MMDDYY10.输入格式Slide 2601312002031220035 13 20044 21 20055 25 20061/2/20073-24-2008data b;input dd mmddyy10.;format dd mmddyy10.;cards;01312002031220035 13 20044 21 20055 25 20061/2/20073-24-2008;proc print;run;Obs dd1 01/31/20022 03/12/20033 05/13/20044 04/21/20055 05/25/20066 01/02/20077

17、 03/24/2008Slide 27p输出格式 选项说明: 输出格式 是 SAS系统用来输出数据值的一个指令。 输出格式形式 FORMAT .Slide 28通用规则: 所有 输出格式必须包含一个点 (.)作为名字的一部分; 省略 W和 D的值时,使用系统的缺省值; 无论 怎样规定输出格式中的小数位,输出格式都不会影响存贮的数据值; 规定 的输出格式宽度太窄小时,对字符格式截去右边的字符,对数值格式转换为 BESTw.的格式; 使用 一个不协调的输出格式时, SAS系统首先试着使用其它类型的类似格式。如果行不通,将输出一个错误信息在 SAS日志 。Slide 29输出格式类型 数值输出格式 ; 字符输出格式 ; 日期时间输出格式 ; 使用 FORMAT过程创建的自定义输出格式。Slide 30输出格式使用方法 DATA步中用 FORMAT或 ATTRIB语句; PROC步中用 FORMAT或 ATTRIB语句。 PUT语句; PUT函数;

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报