03数据步创建SAS数据集_第1页
03数据步创建SAS数据集_第2页
03数据步创建SAS数据集_第3页
03数据步创建SAS数据集_第4页
03数据步创建SAS数据集_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、第第3章章 数据步创建数据步创建SAS数据集数据集 清华大学经济管理学院清华大学经济管理学院 朱世武朱世武 本章内容本章内容 n SAS语言; n 数据步与过程步; n 数据集与变量; n SAS程序; n 程序执行与输出; n SAS表达式; n 数值与字符之间的转换; n 错误类型与处理; n SAS文件系统; n 数据步创建SAS数据集 SAS语句语句 SAS语句由关键词开始,分号结束。 语句中间的SAS名,过程名和运算符等为SAS 系统提供信息或执行操作。 例3.1 有效的SAS语句。 data data1; data _null_; put name $ 8.; format dat

2、e yymmdd10.; proc means data=fdata.class; infile d:fdataclass.txt; do I=1 to 100; X=Y+1; SUMX+X; run; SAS名与关键词名与关键词 关键词 SAS语句一般以关键词开始。 赋值语句、累加语句和注释和空语句没有关键词。 SAS名的类型 逻辑库名; 数据集名; 变量名; 格式名; 过程名; 数组名; 语句标号名; 特殊文件名; 其它名 有关SAS名的规定 第一个字符必须是字母或下划线_; 逻辑库名的最大长度是8个字符,其它的 SAS名的最大长度可达32个字符; SAS名中不能有空格和一些特殊字符($

3、,# ); 系统保留了一些特殊的变量名,如_N_ ,_ERROR_等。 SAS语句格式语句格式 KEYWORD parameteroptions; 关键词关键词 参数 选项; 其中: n 粗体-必须按显示形式书写的关键词; n 白正体-用户提供的信息; n -括号内的信息可选; n |-任选。 参数PARAMETER不是任选项,不用括号,OPTIONS是选项关键词。 数据步与过程步数据步与过程步 一组SAS语句组成一个SAS程序。 SAS程序中的语句可分为两类步骤: v 数据步; v 过程步。 所有SAS程序均有数据步和过程步两大模块构成。 数据步数据步 数据步编译、创建和修改SAS数据集或文

4、本文件、读入源数 据文件和SAS数据集。 数据步以DATA语句开始。 例3.2 数据步创建SAS数据集。 data A; set fdata.a1a0001; keep date clpr; run; 例中,由数据步产生数据集A, 数据来源于SAS数据集 FDATA.A1A0001(上证指数)的日期DATE和收盘价CLPR。 过程步过程步 过程步面向SAS数据集,完成对数据集的加工整理、分 析和呈现等功能。 过程步以PROC语句开始。 例3.3 应用统计量均值过程。 proc means data=fdata.a1a0001; var clpr; output out=M mean=CLPR_

5、M; run; 例中,过程步调用SAS的MEANS过程,对数据集 FDATA.A1A0001(上证指数)中的收盘价CLPR求得均值 CLPR_M,并将产生的结果存贮在数据集M中。 SAS数据集数据集 一个SAS数据集是一批数据值,如表3.1所显示一批观测值。 DateOpprHiprloprclprVolsumsnamehstoce 2001-1-108.688.78.458.499816983862277 邯郸钢铁600001 2001-1-118.528.68.48.477574863988645 邯郸钢铁600001 2001-1-158.478.478.088.123840231636

6、545 邯郸钢铁600001 2001-1-168.088.48.058.354557137683964 邯郸钢铁600001 2001-1-178.398.58.288.292634522076348 邯郸钢铁600001 2001-1-188.328.48.218.261785414844434 邯郸钢铁600001 第一行是变量,第二到最后一行都是变量的观测数据。 SAS变量变量 变量类型 数值变量; 字符变量。 数值变量的值只能是数值。SAS可以接受的数 值范围为正负10E-307至正负10E308 。 字符变量的值可以是字符,字母,特殊字符和 数值。字符变量名后跟一个美元号($)。字

7、符 值可以取l200个字符长。 SAS变量的属性变量的属性 SAS变量的属性包括长度、输人输出格式和标签。 v变量的长度是指存贮变量值的字节数。缺省长度为8 个字节。 v 变量的输人格式是指SAS系统读人变量值的方式。 v 变量的输出格式是指SAS系统呈现变量值的方式。 v 变量的标签是指变量名的描述性标识,它至多可用 40个字符。 未设定属性的变量在它们第一次出现时由系统给出。 自动变量自动变量 自动变量说明自动变量说明 _N_观测序号_Model_ _Error_错误信息变量_Name_ _Numeric_所有数值变量_Prior_ _Character_所有字符变量_Rba_ _All_

8、所有变量_Row_ _Cmd_Rrn_ _Col_Sigma_ _Fdbk_Titles_ _Iorc_Type_ _Label_Weigth_ _Lndet_First.Variable _Msg_Last.Variable SAS程序举例程序举例 例3.4 一个DATA步构成的SAS程序。 data A600001(label=邯郸钢铁); input date yymmdd10. oppr hipr lopr clpr vol sums name $ hstocd $; format date yymmdd10. ; /*设定变量的输出格式 */ label Date=日期|Date;

9、/*给变量加标签*/ label Oppr=开盘价|Open Price; cards; /*以下是数据表*/ 2001-1-16 8.08 8.4 8.05 8.35 45571 37683964 邯郸钢铁 600001 2001-1-17 8.39 8.5 8.28 8.29 26345 22076348 邯郸钢铁 600001 2001-1-18 8.32 8.4 8.21 8.26 17854 14844434 邯郸钢铁 600001 ; 例3.5 一个DATA步和三个PROC步构成的SAS程序。 data a; set fdata.a600001 (keep=date clpr);

10、proc sort data= fdata.a600001 out=b; by descending clpr; proc print data=b (obs=10); proc gplot data= fdata.a600001; plot clpr*date=1; symbol1 v=star i=none r=1 c=blue; run; 例中,用过程步将数据集A600001按变量CLPR值接降序排序 ,然后显示排序后的前10个观测值,最后作出收盘价时序图。 书写规则书写规则 SAS语句的书写规则灵活自由: 语句可在行的任一列开始; 一个语句可以分写为多行; 多个语句可以写在同一行; 语

11、句中各项之间至少用一个空格或特殊字符隔开; 应遵守的书写规则: 不同程序步间留空行; 每条语句都要另起行。 注释语句的两种格式: v /* 注释内容 */ v * 注释内容; 变量列表及其缩写方法变量列表及其缩写方法 许多SAS语句都需要规定变 量,即按顺序列出变量名。 变量列表不同形式的缩写方 法如右表所示。 变量列表缩写说明 X1 X2XnX1-Xn从X1到Xn的所有变量 X-A从X到A的所有变量 X Y Z AX_numeric_A从X到A的所有数值变量 X_character_A从X到A的所有字符变量 _numeric_所有数值变量 _character_所有字符变量 _all_所有变

12、量 例3.6 打印输出所有数值变量的数据。 proc print data=fdata.a1a0001 (obs=6); var _numeric_ ; 例中,打印FDATA.A1A0001数据集中所有数值变量的前6个观测数据。 程序执行程序执行 按F3提交给SAS系统执行PGM窗口编辑好的SAS程序。 程序执行的过程中,LOG窗口显示以下信息: 执行的语句; 生成数据集中变量和观测的个数; 执行程序花费的时间; 出错信息。 程序输出程序输出 例3.7 打印输出数据集的观测值。 proc print data=fdata.a600001 (obs=10) noobs; /*输出前10个观测,不

13、输出观测号*/ var oppr hipr lopr clpr; title “股票行情”; run; 例中,按F3提交程序后,在OUTPUT窗口打印输出数据集 FDATA.A600001中变量OPPR, HIPR, LOPR和 CLPR的前10个观测值, 不输出观测号。 例3.8 计算并输出变量的均值。 proc means data=fdata.a600001 ; var oppr hipr lopr clpr; /*输出变量oppr hipr lopr clpr的均值*/ run; 例3.9 计算并输出变量间的相关系数。 proc corr data=fdata.a600001; /*输

14、出变量oppr hipr lopr clpr之间的相关系数*/ var oppr hipr lopr clpr ; run; SAS表达式表达式 表达式由一系列操作符和操作对象构成,产生一个目 标值。 例3.10 表达式里允许有空格。 Y=X+10; Y= X + 10; 操作符包括: 算术算符; 比较算符; 逻辑算符; SAS函数; 括号。 操作对象有: 变量; 常数。 SAS常数常数 SAS常数是SAS系统可以识别的一些固定值。 SAS常数值可以是: 数字; 引号引起来的字符串; 其它特殊记号。 SAS常数的五种类型: 数值常数; 字符常数; 日期时间数值常数; 十六进制数值常数; 十六进

15、制字符常数。 数值常数数值常数 一个数值常数就是出现在SAS语句里的数字。 1, 5, 1.23, 1.2E23, 0.5E-10 , 2E4 , 2104 , 20000 字符常数字符常数 字符常数通常由单引号括起来的l到20个字符组成。 如果字符常数内含有引号,引用时,要么它的引号用两个连续的单引 号,要么用一个双引号引用。 引用带引号的字符常数: name=TOM”S; name=”TOMS”; 例中,两语句等价。 日期时间常数日期时间常数 将日期时间值表示为常数时,要使用相应的格式值。格式 值带单引号,后面跟一个 D(日期),T(时间)或DT(日期时 间)。 1jan2000d; 01

16、jan00d; 9:25t; 18jan00:9:27:25dt if begin=01JAN2000d then end=31DEC2000d; SAS算符算符 算术算符 算术算符表示执行一种算术运算。 表达式中有一个运算对象是缺失值时,结果也是缺失值。 例3.14 算术算符应用。 data; X=3.5*2.5; put X=; Y=9+1/3; put Y=; X=.; Y=1+X; put Y=; /*Y也是缺失值*/ 算符含义举例 *乘方 A*2.5=A 2.5 *乘A*B*3 /除X/A +加5+C -减C-A 输出结果: X=22.917651494 Y=9.3333333333

17、 Y=. 比较算符 比较算符建立两个量之间的一种关系。 比较准则: v 数值和字符都可以比; v 结果为真赋值1,假赋值0; v 字符值从左到右逐个按ASCII码排列序列进行比较; v 缺失值参加比较时,它比任何有效值都小。 算符等价形式含义举例 = Eq 等于 X=Y = Ne 不等于 X=Y Gt 大于 XY Lt 小于 X= Ge 大于等于 X=Y = Le 小于等于 X=Y In等于列表中的一个 NAME IN (WANG LI) 例3.15 比较算符应用。 if xB 取最大AB |连接Stock|Code 例例3.16 连接多个变量和常数。 data; set fdata.sh_m

18、; result=Shanghai|date|_|clpr; put result; run; 例例3.17 连接带空格的字符值。 data; X=GOOD ; Y=MORNING; Z=X|Y; put Z=; run; 结果显示为 Z=GOOD MORNING, 连接算符不清理开头或结尾 的空格。 运算次序运算次序 表达式运算次序准则: 先计算括弧里的表达式; 先执行较高优先级的运算; 相同优先级的算符,先执行左边的运算。但对最高优先级1 ,先执行右边的运算。 优先级算符含义优先级算符含义 *乘方4|连接 +正小于 -负最小=不等于 最大=大于等于 *乘不大于 除不小于 +加6与 -减7或

19、 1 2 3 5 数值与字符之间的转换数值与字符之间的转换 数值与字符之间相互转换的方式有: SAS系统自动完成数值与字符之间的转换; 函数INPUT将字符转换为数值; 函数PUT将数值转换为字符。 字符字符自动转换自动转换转换为数值转换为数值 能自动地将字符转换为数值情况有: 将字符变量赋值给一个数值变量; 算术表达式中有字符变量; 比较运算中与数值变量进行比较; 需要数值变量的函数中引用字符变量。 data; X=1; /*X为数值变量 */ Y=10; /*Y为字符变量 */ X=Y; /*自动将字符变量Y转换为数值变量 */ data; X=1; /*X为数值变量 */ Y=10; /*Y为字符变量 */ Z=X+Y; /*自动将字符变量Y转换为数值变量 */ data; X=1; /*X为数值变量 */ Y=10; /*Y为字符变量 */ if X1999;

温馨提示

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

评论

0/150

提交评论