每个SAS程序可以由许多步构成,
一些简单的程序,是由许多完成单个动作的“程序步”和一些设定环境的语句构成的。SAS只有两种程序步:
1. 数据步(Data Step):读入源数据文件和SAS数据集,修改、编辑、或创建SAS数据集或文本文件;
2.过程步(Proc Step):面向SAS数据集,完成某个特定的计算,分析,和呈现的功能。
每个程序都是由若干语句构成。每个语句是有一个关键词开始,并以分号结束。通常就用开始的关键词命名这个语句。
DATA语句与PROC语句分别标志着数据步和过程步的开始,RUN语句或另一个程序的开始标志着程序的结束。
SAS程序的书写规则:
SAS程序是由SAS语句构成的。每个语句由关键词开始,分号结束。在程序编写时,SAS语句的书写格式比较自由,即:
1.语句可在行的任一列开始和结束;
2.语句的词之间可以用一个或多个空格符或其它特殊字符隔开。
3.一个语句可以分写为多行(换行时,换行符相当于一个空格符)
4.多个语句也可以写在同一行。
尤其在工作中需要处理大批量的数据或需要借助SAS进行多任务并行处理的时候,往往有对SAS程序设定自动运行的需求。
下面对其中的一种方法进行举例介绍。
步骤1:
建程序存放目录D:\temp
测试程序如下:
proc export data =sashelp.class
outfile= "D:\temp\class.xls"
label dbms=excelcsreplace
sheet="class"
run
步骤2 :
建立批处理程序D:\temp\ test.bat
程序内容如下:
"C:\ProgramFiles\SASHome\SASFoundation\9.3\sas.exe" -sysin d:\temp\test.sas -logd:\temp\test.log
注:上述路径均需改为自己的本地路径。
步骤3 :
设定程序运行任务和执行周期
控制面板à管理工具à任务计划程序à创建基本任务à完成设定
(注:运行程序运行的是bat,而不是sas。这个是在设定的时候需要注意的)
DATA CHENGJI1INPUT NAME $ SEX $ MATH CHN GROUP
CARDS
李明 男 92 98 1
张红艺 女 89 1061
王思明 男 86 90 1
RUN
DATA CHENGJI2
INPUT NAME $ SEX $ MATH CHN GROUP
CARDS
张聪 男 95 92 2
刘颖 女 98 1012
高红 女 91 922
RUN
DATA CHENGJI3
INPUT NAME $ SEX $ MATH CHN GROUP
CARDS
赵强 男 93 99 3
李云芳女 96 1023
周闪 男 88 98 3
RUN
*第二步
DATA CHENGJI0
SET CHENGJI1 CHENGJI2 CHENGJI3
RUN
*第三步
DATA CHENGJI
SET CHENGJI0
AVG=MEAN(MATH,CHN)
RUN
PROC SORT
BY AVG
RUN
*第四步
DATA MATH90
SET CHENGJI0
WHERE MATH>90
RUN
*第五步
PROC SORT DATA=CHENGJI(KEEP=NAME GROUP AVG) OUT=LAST
BY GROUP AVG
RUN
DATA LAST
SET LAST
BY GROUP AVG
IF FIRST.GROUP
RUN
*第六步
PROC SORT DATA=CHENGJI0 OUT=MATH
BY SEX
RUN
DATA MATH(KEEP=SEX AVG SUM_ALL)
SET MATH END=T
BY SEX
IF FIRST.SEX THEN DO
I=0
M=0
END
M+MATH
I+1
AVG=M/I
J+1
TOT+MATH
IF LAST.SEX
IF T THEN SUM_ALL=TOT
RUN
*第七步
PROC SUMMARY DATA=CHENGJI0 NWAY
VAR MATH
OUTPUT OUT=A(DROP=_TYPE_ RENAME=(_FREQ_=N)) SUM=TOT
RUN
DATA DIF
IF _N_=1 THEN SET A
SET CHENGJI0
AVG=TOT/N
DIFF=AVG-MATH
DROP TOT N
RUN
*第八步
DATA EN
INPUT EN @@
CARDS
80 84 85 86 82 87 96 75 52
RUN
DATA ALL
SET CHENGJI0
SET EN
RUN
楼上这位是大牛,多向他学习学习
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)