DO组 创建一个执行语句块
DO循环 根据下标变量重复执行DO和END之间的语句
DO WHILE 重复执行直到条件为假则退出循环
DO UNTIL 重复执行直到条件为真则退出循环
DO OVER 对隐含下标数组元素执行DO/END之间的语句
END 退出DO或SELECT语句的标志
SELECT 选择执行SAS语句
IF-THEN/ELSE有条件执行一个SAS语句
GO TO 使SAS语句跳转到GO TO语句后面,继续执行其他语句
RETURN 不和LINK语句连用时。跳转到DATA步开头;和LINK语句连用时,跳转到LINK后面的语句。
CONTINUE 停止DO循环中当前循环,跳转到DO语句继续执行下一次循环,只能用在DO循环。
LEAVE 跳出当前DO循环或SELECT组,继续执行后面的DATA步。可用在DO循环或SELECT.
2. SELECT - WHEN 顺序执行WHEN,当第一个WHEN为真跳出,或者执行OTHERWISE,否则报错。
实践:拉直数据集
libname chapt6'f:\data_model\book_data\chapt6';
data fishdata4;
set chapt6.fishlength(keep=location data_name_measurement);
by location date;
array tr[1:4] length1-length4;
retain length1-length4;
if first.datethendo i=1to4;
tr(i)=0;
end;
select(_name_);
when('length1')length1=measurement;when('length2')length2=measurement;when('length3')length2=measurement;when('length4')length2=measurement;
otherwise;
end;
if last.date;
keep location date length1-length4;
run;
data a;
input v1 v2 v3 @@;
datalines;
12314524data b;
set a;
_tem=max(of v1-v3);
array arr v1-v3;
do over arr;
if arr=_tem then v4=vname(arr);
end;
drop _tem;
run;
5. 在DATA步的其他地方,RETURN语句使得SAS系统返回到DATA步开头(常用)。
6. SAS常用全程语句
全程语句是可以用在一个SAS程序脚本中的任何地方的语句。可以用在数据步,也可以用在过程步,甚至可以单独使用。
常用的全程语句
COMMENT 作为其他SAS程序的一种解释或者屏蔽功能
X 发布主机操作系统命令,如DOS命令
LIBNAME 定义SAS逻辑库
FILNAME 标记一个外部文件
%INCLUDE 从外部文件等调出SAS语句和数据行
TITLE 输出打印的标题行
FOOTNOTE 输出打印的脚注行
OPTIONS 改变SAS默认的系统选项
7. FILENAME语句
发送程序运行结果到EMAIL
filename outbox email
to='sendname@company.com'type='text/html'
subject='Test Subject';
ods html body=outbox/*Mail it!*/;
title 'Here is tile';
proc print data=sashelp.class;
run;
ods html close;