设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3137|回复: 0

SAS 程序的构成和书写格式

[复制链接]

4

主题

47

金钱

72

积分

新手用户

发表于 2018-9-28 09:53:49 | 显示全部楼层 |阅读模式

SAS 程序的构成

1、SAS 程序的基本构成单位是SAS 语言元素,SAS 语言元素包括:

(1)SAS 语句:主要指具有特定功能的关键词,宽泛的概念还包括SAS 中的变量、常量、SAS 名、运算符、控制符及其他特殊字符等。详见本章SAS 语句概念一节。

(2)SAS 系统选项:指影响SAS 作业的规则,可以控制SAS 执行操作,诸如SAS 系统的初始化、硬件和软件界面接口、输入、处理、输出SAS 作业或文件等。参见OPTIONS 语句。

(3)SAS 数据集选项:是指定和应用于数据集的动作,其他选项、参数、说明项也有类似作用,只是对象不同。本章DATA 语句中有数据集选项相关的一些介绍。

(4)SAS 函数和CALL 子程序:SAS 函数是一个子程序,根据函数的参数进行计算或系统处理,返回一个值;CALL 子程序的功能和函数类似,只是不能用于赋值语句中,可以改变量的值或执行系统函数。

(5)ARM 宏:当应用程序执行时,提供了测量应用程序效能的一种方法。ARM 宏是ARM(Application Response Measurement 应用程序响应测量)接口的一部分,而不是宏语言工具的一部分。

(6)SAS 输入和输出格式:SAS 规定的读写数据值的结构。本章INFORMAT 和FORMAT 语句有相关的一些内容。

2、语句的详细解释

  1. 1 /****************************\
  2. 2 | 10名学龄儿童的身高体重资料 |
  3. 3 \****************************/
  4. 4 OPTIONS nodate number=0;
  5. 5 DATA SASTJFX48_1;
  6. 6 INPUT name $ height weight @@;
  7. 7 BMI=weight/(height/100)**2;
  8. 8 LABLE BMI=‘body mass index’;
  9. 9 DATALINES; 25 ODS HTML CLOSE;
  10. 10 WangHB 149.4 30.8 WuCJ 167.6 46.6
  11. 11 ChenF 146.3 33.1 GaoSY 170.7 44.0
  12. 12 ZhanZL 161.5 36.3 LiYZ 164.6 40.8
  13. 13 ShenJJ 155.5 36.7 ZhaoJH 158.5 35.4
  14. 14 ZhangHX 149.4 33.1 WangXS 156.4 31.8
  15. 15 ;
  16. 16 RUN;
  17. 17 ODS HTML;
  18. 18 PROC MEANS data=SASTJFX48_1;
  19. 19 VAR bmi;
  20. 20 OUTPUT out=result mean=BMImean;
  21. 21 RUN;
  22. 22 PROC PRINT data=result (keep=BMImean);
  23. 23 FORMAT BMImean 4.1;
  24. 24 RUN;
  25. 25 ODS HTML CLOSE;
复制代码

第1-3 行:为注释语句,并不是真正意义上的SAS 程序,是用户对程序或语句的注解和说明。

第4 行:为SAS 系统选项语句,以关键词“OPTIONS”开头,其后为OPTIONS 语句的参数(或称为选项);nodate 参数,指定不在结果标题中显示时间;number=0 选项,也可以写成nonumber,指定不在结果标题中显示页数。以分号(;)指示一条SAS 语句结束。

第5 行:数据步开始,以关键词“DATA”语句开头,后接数据集名,“SASTJFX19_1”是用户自定义的SAS 数据集名。

第6 行:“INPUT”是创建变量、读取数据值、给变量赋值语句,指定将读取的变量值赋予相应的变量,“name、height、weight”是用户自定义的输入变量名,“name”后跟随美元符号($)指定变量“name”为字符型变量,“height、weight”后未跟随美元符号,默认为数值型变量。“@@”符号是读取数据值的指针控制符号,指定在同一数据行可以读取2 个以上的观测数据。

第7 行: 是一个赋值语句, 建立BMI 变量, 通过等号( = ) 将表达式“weight/(height/100)**2”的返回值赋予变量BMI。

第8 行:通过“LABEL”语句设置变量BMI 的标签为“body mass index”。

第9 行:“DATALINES”语句单独占用一行,指示其后为数据行。

第10-15 行:为数据行,是用户在程序中输入原始数据的区域,这种在SAS 程序中录入并记取的数据也称为数据流数据。当到达SAS 数据集或原始数据(包括数据流数据和外部文件数据)末端再无数据可读取时,SAS 数据步反复读取数据的过程结束。第15 行单独一个分号(;)占用一行,称为空语句,指示数据行结束(所以DATALINES 语句是数据步的最后一个语句)。

第16 行:“RUN”语句指定运行上述程序。

第17 行:ODS 输出语句,指定结果以HTML 格式输出。

第18 行:“PROC”指示数据步开始,后接过程名,“MEANS”为SAS 过程名,可以在MEANS后加max、min、std 等参数,计算用户想得到的统计量,此处未加任何参数,计算得到默认的一些统计量;‘data=’为数据集选项,指定过程步分析的数据集为“SASTJFX48_1”。

第19 行:“VAR”语句后跟变量名,指定分析的变量。

第20 行:“OUTPUT”语句将运行结果输出,OUT 后为用户自定义的输出数据集名,mean为结果中的均数名,等号(=)后是用户自定义的输出名。

第21 行:“RUN”语句指定运行上述程序。

第22 行:调用PRINT 过程在结果窗口显示RESULT 数据集。圆括号中的‘keep=’是数据集选项,指定保留的变量,其后是变量名。

第23 行:“FORMAT”语句规定变量的输出格式,其后是变量名和输出格式,‘4.1’是标准数值型变量输出格式,指定输出变量占用4 个字符,并保留一位小数。

第24 行:“RUN”语句指定运行上述程序。

第25 行:与第17 行成对出现的ODS 语句,指示关闭HTML 格式输出。

SAS 程序的书写规则

SAS 程序具有比较自由、灵活的书写规则:

1、每条SAS 语句以分号(;)结尾。

2、SAS 语句可以从任何一行、任何一列开始,一行上可以写多条SAS 语句。

3、一条SAS 语句可以写在多行上,但不能把一个语法单位分开写在不同的行上。

4、一般情况下,一条语句中不同的语法单位要用空格或换行符分隔,但是一些字符的前方或后方,可以不用空格分隔,SAS 可以自动分析语句结构、识别语法单位。例如,表达式中大部分的运算符前后都不需要空格,如x + 1 / y 通常写作x+1/y。通常两个语法单位之间一个空格和多个空格的效果相同,但在双引号中把空格当作单词的一部分的情况除外。

5、SAS 语句书写不区分字母的大小写,但在一些特殊场合除外。例如,在单引号或双引号中的字符型常量区分大小写字母。

SAS 程序的书写格式

虽然SAS 书写程序比较灵活,但在书写格式上应当保持良好习惯,做到结构紧凑,条理清晰,便于阅读。

1、一行上一般只写一条SAS 语句。虽然一行上可以写多条SAS 语句,但一行上写一句使得程序更清晰、易读。

2、较长的语句可以占多行,从第二行起使用缩进格式以突出语句结构。

3、由于SAS 对空格的数目没有严格的限制,所以建议将SAS 程序写成便于阅读的分层嵌入式结构,其第一个语句和最后的RUN 语句由第一列开始书写,其他语句按程序的逻辑结构层次遵循缩进格式书写,以使得程序结构更为清晰。

4、为保持结构紧密,在不需要空格的地方不写空格。例如,由一些运算符连接的表达式之中。

5、所有的数据步和过程步均主动加上“RUN”或“QUIT”语句作为结束,使得程序各部分的边界更清楚。

6、尽量只使用小写字母,或者主要单词首字母大写,其余部分使用小写字母。例如,变量名stuname 可以写成StuName。

7、在较长的程序前后加上空行、注释语句等突出分段。

8、将自定义的SAS 名写成具有实际意义、简洁、便于记忆的名字,有利于书写其他语句或便于读者读懂SAS 程序。例如程序SASTJFX19_1 中的身高、体重、BMI 指数分别命名为height、weight、BMI,在用户读SAS 程序和结果时,都能快捷、自然的联想到这些变量的实际含义。

9、由于SAS 对中文的支持并不是很好,建议所有的语句及符号尽量在英文输入法状态下键入。

SAS 注释语句(SAS Comment)

SAS 注释语句是方便读者阅读SAS 程序、语句的说明,SAS 在编译程序时将忽略这些注释语句。

SAS 注释语句有以下两种形式:

*用户书写的说明或注解;

即以星号(*)开始,以分号(;)结束,其间为用户书写的说明或注解。这种形式要求

注释语句类似单独一条SAS 语句来书写,其内容不能包含分号。这种形式的注释语句不能用于宏程序中,如果需要在宏程序中添加注释语句,必须使用下面这种形式。

/*用户书写的说明或注解*/

即以斜杠星号(/*)开始,以星号斜杠(*/)结束,其间为用户书写的说明或注解。这种形式的注释语句不能写成套嵌结构。

注释语句可以出现在SAS 程序除数据行的任何地方,并且没有长度限制,一般用来对程序、语句等进行说明、添加批注或者对要点进行记叙,也可以在调试SAS 程序时把某些语句暂时标注成注释格式,使之不被SAS 系统执行。将语句标注成为注释语句的快捷键是“Ctrl+/”,选中SAS 程序的一行或多行按下“Ctrl+/”后,选中的语句前后两端即分别加上“/*”和“*/”,使之成为注释语句,反之,去除这种格式的快捷键为“Ctrl+Shift+/”。

虽然注释语句并不是SAS 程序,但合理的注释是一个好的SAS 程序重要组成部分。写注释语句时应注意,其内容应当有实际意义,并且简洁,没有歧义,方便自己和他人阅读。为了使注释更加醒目、美观,注释语句可以有多种形式,如以下几种形式:

  1. /********************
  2. This is a sample
  3. ********************/
复制代码
  1. *------------------*
  2. | 这是一个样例 |
  3. *------------------*;
复制代码
  1. /********************/
  2. /* This is a sample */
  3. /********************/
复制代码

本帖被以下淘专辑推荐:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表