在学习SAS之初,我们需要了解SAS语言的一些基础概念,如statement, option 和function。它们在程序中扮演怎么样的角色?它们之间存在哪些区别和联系呢?今天小编带你一一梳理,如果你是SAS基础小白,请不要错过这篇推文哦~~
SAS Statements
在Base SAS中,SAS statement(语句)要求SAS系统执行操作或给SAS系统提供信息,是包含关键词、SAS 名字、特殊字符和运算符等的语句。每个SAS语句以分号做结束。
DATA step statements
可用在SAS程序任何位置的Global statements
1.1
DATA步语句
DATA 步语句是出现在 DATA 步中的可执行(Executable)或声明性(Declarative)语句。可执行语句会在DATA 步的各个迭代中执行某些操作;声明性语句则向SAS系统提供信息,并在系统编译程序语句时生效。
以下展示了一些在DATA步中用到的执行语句和声明性语句。
除了可执行(Executable)和声明性(Declarative)语句,SAS DATA step语句还可根据其具体功能进行分类:
基本DATA步程序样式如:
程序以DATA语句开头,为SAS数据集,视图或程序提供名字。
DATA <data-set-name-1 <(data-set-options-1)>>
<... data-set-name-n <(data-set-options-n)>> </ <DEBUG> <NESTING> <STACK = stack-size>> <NOLIST>;
SET<SAS-data-set(s) <(data-set-options(s) )>> <options>;
/*…more SAS statements…;*/
RUN;
1.2
全局语句
全局语句通常向SAS提供信息、请求信息或数据、切换不同的执行模式或设置系统选项。ODS语句提供多种格式输出,例如超文本标记语言(HTML)。在SAS程序中的任何位置都可使用全局语句(包括DATA步,PROC步或单独使用)。全局语句不可执行,在SAS编译程序语句生效。
SAS官方文件对全局语句的分类如下,大家可以参考对应的例子去进一步感受全局语句的功能。
SAS Functions
SAS 函数对参数执行计算或系统操作,并返回可用于赋值语句或表达式中的值。
在Base SAS中,可以在DATA步语句、WHERE表达式、宏语言语句、PROC REPORT 和结构化查询语言(SQL)中使用SAS函数。
在一些统计过程也可以使用SAS 函数。
基本的SAS函数语法如下所示:
function-name (argument-1<, ...argument-n>)
function-name (OF variable-list)
function-name (<argument | OF variable-list | OF array-name[*]><..., <argument | OF variable-list | OF array-name[*]>>)
Examples:
Ø NewCity=left(upcase(City));
Ø x=max(cash,credit);
Ø a=sum(of x y z);
Ø a=sum(of x1-x10 y1-y10 z1-z10);
a=sum(of x1-x10, of y1-y10, of z1-z10);
我们参考SAS官方对SAS函数的分类来感受函数的功能。
Definition of options
3.1
Data set options
数据集选项对SAS数据的展现执行指定的操作。可用在DATA步或PROC步中。
重命名变量
仅选择第一个或最后n个观测进行处理
从处理或输出数据集中丢弃变量
为数据集设定密码
语法
(option-1=value-1<...option-n=value-n>)
Examples
Ø data scores(keep=team game1 game2 game3);
Ø data mydata(index=(b k) label='label for my data set' drop=p read=secret);
Ø data idxdup2(compress=yes index=(ok1 ok2 ssn/unique ok3));
Ø proc print data=new(drop=year);
Ø set old(rename=(date=Start_Date));
同样地,我们简单了解Data Set options的分类来了解其功能:
3.2
System options
一旦指定系统选项,SAS处理过程中均会按照指定的选项进行处理,并且在重新指定系统选项前一直保持,如:
SAS 输出的外观
SAS 使用某些文件的处理
系统变量的使用
SAS 数据集中的观测值的处理
SAS 初始化功能等
语法
OPTIONS option(s);
Examples
options nodate linesize=72;
nodate 指定不输出日期
linesize= 指指定SAS日志和输出中线的大小
04
Statements, functions and options in SAS programs
我们都知道SAS程序由DATA步和PROC步两部分组成。在DATA步中,我们可以灵活使用这些语句、函数或选项去处理我们的数据;PROC步则主要以必需或可选的语句构成,在每个语句下有一些可选的选项。如PROC PRINT就仅需要两个关键词:PROC PRINT;
而特殊地,在SQL过程中,也可以灵活使用语句、函数或选项去处理数据。
小结
根据今天介绍的内容,我们做个小结:
Statement 是DATA步或PROC步中的“主心骨”,执行生成数据、向系统提供信息、或执行统计分析。
Option执行主心骨下的分支功能,如控制数据中观测、变量和其他具体信息,调整输出格式、输出细节,进一步选择统计分析方法的具体细节如选择矩阵、检验类型、分析类型和输出细节等。
Function则为DATA和PROC步中构造数据的利器:如实施计算,提取字符和生成随机数据等。
今天的内容就到这里啦~希望今天梳理的内容对你们进一步了解SAS有帮助哦❤❤
References
1.SAS Documentation - SAS(R) 9.3 Statements: Reference SAS® 9.3 Statements :: SAS(R) 9.3 Statements: Reference
2.Base SAS(R) 9.3 Procedures Guide, Second Edition Base SAS® 9.3 Procedures Guide :: Base SAS(R) 9.3 Procedures Guide, Second Edition
3.SAS Documentation - SAS(R) 9.3 Output Delivery System: User's Guide, Second Edition SAS® 9.3 Output Delivery System :: SAS(R) 9.3 Output Delivery System: User's Guide, Second Edition
4.SAS Documentation - SAS(R) 9.3 Functions and CALL Routines: Reference SAS® 9.3 Functions and CALL Routines :: SAS(R) 9.3 Functions and CALL Routines: Reference
5.SAS Documentation - SAS(R) 9.3 Data Set Options: Reference Data Set Options by Category :: SAS(R) 9.3 Data Set Options: Reference
6.The Little SAS Book中文版/ (美)洛拉·D.德尔维奇,(美)苏珊·J.斯劳特著;小小SAS翻译组译.北京:清华大学出版社,2018