跳转到内容

SAS/编程

来自维基教科书,开放世界中的开放书籍
< SAS

SAS 编程模式

[编辑 | 编辑源代码]

SAS 使用多种编程模式来操作数据。其中包括

  • 全局语句,用于定义或更改程序环境
  • SAS 数据步,使用数据步语言在矩形数据库表(数据集)中创建、输入、修改和输出数据。
    • SAS 数据步以 DATA 关键字开头,通常以 RUN 语句结束。
  • 过程,预编译的结构,旨在根据(通常)SAS 数据集和一个或多个控制参数的输入来产生定义的结果
    • SAS 过程以 PROC 关键字开头,后跟过程名称,通常以 RUN 或 QUIT 语句结束。
  • SQL 语句,在 PROC SQL 中发出,提供了一种替代(更标准)的方法来创建和修改数据库表
  • IML(交互式矩阵语言)语句,在 PROC IML 中发出,提供了一种操作矩阵数据的方法。
  • SAS 图形语句,使用特殊词汇表的语句来控制图形输出。
  • ODS 语句,使用另一种特殊词汇表的语句来控制输出到外部媒体
  • SAS 宏语言,在执行之前修改程序语句,并允许在每次运行时通过替换控制参数来使通用代码适应使用。
    • 宏代码通常由包含以 % 或 & 开头的关键字的语句标识。

一个简单的例子

[编辑 | 编辑源代码]

以下宏计算频率,绘制它们并将图形存储在文件中。您只需一行即可执行所有这些任务,而无需每次都重复所有这些步骤。

%macro plot_dist(var=,title=,name=); 
proc freq data = lib.fic_dad_06_1 ; 
table &var /out = _freq_ ; 
run ; 
goptions reset=all;
filename output &name;
goptions device=png gsfname=output gsfmode=replace;
proc gplot data = _freq_ (where = (&var > 1 & &var < 70)) ;
title &title ;  
symbol v = circle c = black i = none; 
plot count * &var / grid href=10 20 50 ; 
run; 
quit ; 
%mend ; 

%plot_dist(var = EFFECTIF , title = "Effectif", name = "W:/…/hist_eff.png");
  • 宏的声明以 **%macro** 开头,以 **%mend** 结束。
  • 宏中的参数以 **&** 符号开头。
华夏公益教科书