SAS基础系列:SAS语言 – Statement, Option和Function

发布时间:2021-09-10 文章来源:

在学习SAS之初,我们需要了解SAS语言的一些基础概念,如statement, option 和function。它们在程序中扮演怎么样的角色?它们之间存在哪些区别和联系呢?今天小编带你一一梳理,如果你是SAS基础小白,请不要错过这篇推文哦~~



SAS Statements

在Base SAS中,SAS statement(语句)要求SAS系统执行操作或给SAS系统提供信息,是包含关键词、SAS 名字、特殊字符和运算符等的语句。每个SAS语句以分号做结束。

1.1

DATA步语句

DATA 步语句是出现在 DATA 步中的可执行(Executable)或声明性(Declarative)语句。可执行语句会在DATA 步的各个迭代中执行某些操作;声明性语句则向SAS系统提供信息,并在系统编译程序语句时生效。


以下展示了一些在DATA步中用到的执行语句和声明性语句。

7.png


除了可执行(Executable)和声明性(Declarative)语句,SAS DATA step语句还可根据其具体功能进行分类:


8.png


基本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官方文件对全局语句的分类如下,大家可以参考对应的例子去进一步感受全局语句的功能。

9.png



SAS Functions


基本的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函数的分类来感受函数的功能。

10.png



Definition of options


3.1

Data set options


数据集选项对SAS数据的展现执行指定的操作。可用在DATA步或PROC步中。


语法

(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处理过程中均会按照指定的选项进行处理,并且在重新指定系统选项前一直保持,如:


语法

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过程中,也可以灵活使用语句、函数或选项去处理数据。

12.png微信图片_20240226164025.png

13.png



小结

根据今天介绍的内容,我们做个小结:


今天的内容就到这里啦~希望今天梳理的内容对你们进一步了解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


上一篇:没有了 下一篇:没有了