sas系统和数据分析用在data步的控制语句(编辑修改稿)内容摘要:
动平均线相应的程序如下: Data MAV。 Input date date7. close。 Moveaver=(close+lag1(close)+lag2(close))/3。 Card。 19MAY99 20MAY99 21MAY99 24MAY99 25MAY99 Proc print data= MAV。 Run。 二、 实现选择( SELECT 语句) 在 DATA步中使用 SELECT 语句,使 SAS 系统去执行几条语句 或语句组中的一条语句。 本质上是一种多路分支结构,当然可以用 IF— THEN 结构的多层嵌套来实现,但当分支较多时, SELECT 语句会很方便,结构也很清楚。 SELECT— WHEN 结构非常类似其 他 程序语言中的 DO CASE 结构。 SELECT 语句开始一个 SELECT 组, SELECT 组包括一些 WHEN语句,当一个设定的条件为真时,执行对应的 WHEN 语句给出的一些 SAS 语句。 在 SELECT 组中至少必须有一个WHEN语句。 如果所有的 WHEN 条件均不成立,那么执行 OTHERWISE 语句给出的 SAS 语句。 最后用一个 END 语句 结束这个 SELECT 组。 SELECT 语句的一般格式如下: Select (select 表达式 )。 When (when 表达式 ) 任意可执行 SAS 语句 ; When (when 表达式 ) 任意可执行 SAS 语句 ; „„ Otherwise 任意可执行 SAS 语句 ; End ; 如果有 SELECT的表达式,首先比较 select表达式和第一个 when表达式计算结果的大小,相等为真,执行这个 WHEN 后面的 SAS 语句;不相等为假,执行下一条 WHEN 语句或1d26d6ca46471a74146acc8594878980 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 10 of 21 OTHERWISE 语句。 如果没有 SELECT 的表达式, when 表达式中一定要含有比较操作符,先求出第一个 when表达式的真假结果,如果为真,执行这个 WHEN 后面的 SAS 语句,如果为假,执行下一条WHEN 语句或 OTHERWISE 语句。 要特别注意,一个 SELECT 组是按顺序判断 WHEN语句,一旦某个 WHEN语句满足条件执行了,就跳出这个 SELECT 组。 即使后面 WHEN语句也满足条件,也不再执行了。 所以 ,程序员要注意安排好 WHEN 语句的顺序和条件。 例如,我们有一个 CLASS 数据集,存放的是学生的 成绩表,我们要创建一个新的数据集CLASS02,新增平均成绩 AVER 变量和等级考评 GRADE 变量, GRADE 的值是根据 AVER值的大小给出 A、 B、 C、 D 四个等级。 程序如下: Libname Study “d:\sasdata\mydir”。 Data Class02。 Set。 aver = (test1+test2+test3)/3。 Select。 When(aver=90) grade=”A”。 When(aver=80) grade=”B”。 When(aver=70) grade=”C”。 Otherwise grade=”D”。 End。 Proc print data= Class02。 Run。 程序运行结果见图 所示。 图 用 SELECT— WHEN 组产 生的数据集结果 1d26d6ca46471a74146acc8594878980 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 11 of 21 三、 实现分支( IF 语句) 在 SAS 语言中, IF 语句有两种使用格式: IF语句的格式之一: IF 条件表达式 THEN SAS 语句。 ELSE SAS语句。 IF语句的格式之二: IF 条件表达式。 当我们在创建 SAS 数据集时使用 IF 语句的格式之一,可以根据被处理的观测是否使 IF条件表达式为真,来决定是否执行 THEN 后面的 SAS 语句。 如果条件表达式为假,执行 ELSE后面的语句,没有 ELSE 语句执行 IF 语句的下一条语句。 IF— THEN/ELSE语句可以多层嵌套,但要注意 IF— THEN/ELSE 语句的程序编写格式和匹配。 另外 , THEN 和 ELSE 后还可以跟 DO 语句, 格式见 DO 语句的程序格式之一。 1. 使用 IF— THEN/ELSE 语句 例如,我们有一个 SURVEY 数据集,其中有人的身高 HEIGH和体重 WEIGHT 数据,现在我们要创建一个新的数据集 SURVEY02,新的数据集新增一个变量 FATNESS,用以标识这个人是否肥胖。 假设, 人的标准体重计算公式 .:男性之标准体重(千克)=身长(厘米)-100,女性之标准体重(千克)=身长(厘米)-102。 如果超过 标准体重 的 20%,就算肥胖,用 Y 来表示,否则用 N 来表示。 程序如下: Libname Study “d:\sasdata\mydir”。 Data Survey02。 Set。 if sex=M then if weight=(heigh*100100)* then fatness=y。 else fatness=n。 else If weight=(heigh*100102)* then fatness=y。 else fatness=n。 Proc print data= Survey02。 Run。 在使用 IF— THEN/ELSE 语句的多层嵌套结构时要注意两点:一是要以锯齿型来排列一1d26d6ca46471a74146acc8594878980 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 12 of 21 组组 IF— THEN/ELSE 语句,目的是为了通过程序书写格式就能明确 IF— THEN/ELSE语句的层次和配对。 二是如果 THEN 和 ELSE后的 SAS 语句不直接写在同行的后面,而是写在下一行, THEN 和 ELSE 后不能加分号“;”,表示本程序行并没有结束,直到遇到分号“;”为止。 程序运行结果我们在这里就省略了。 2. 使用 IF 语句 当我们在创建 SAS 数据集时使用 IF 语句的格式之二,常用来创建满足 IF 条件表达式的新数据集。 例如,我们要从 SURVEY 数据集中挑选出所有男性观测来产生一个新数据集SURVEY03。 程序如下: Libname Study “d:\sasdata\mydir”。 Data Survey03。 Set。 if sex=M ; Proc print data= Survey03。 Run。 四、 实现转移( GOTO 语句) GOTO是一种无条件转移语句,它告诉 SAS 系统立即转到 GOTO 语句所指的那条语句,并从那条语句开始执行后面的语句。 GOTO语句的实 现,是通过 GOTO语句中和目标语句前使用相同的语句标号才识别目标和实现转移的。 要注意 GOTO 语句只能在同一个 DATA步中进行转移。 GOTO 语句的基本使用格式如下: Data 数据集。 „„。 GOTO 语句标号。 „„。 语句标号 :„„。 „„。 Run。 GOTO 语句是一种非结构化程序设计语句,它通过语句标号可转移到任意目的地的特性常常破坏程序的结构化,许多 其他 语言都不主张使用或禁止使用。 当然 GOTO 语句的功能是可以通过 其他 结构化控制转移语句替代实现。 但是 GOTO 语句也有明显的特点,能很方便地和灵活地进行转移。 GOTO语句最常见的使用,是出现在 IF— THEN 语句中,作为 THEN分句。 例如,我们1d26d6ca46471a74146acc8594878980 SAS 系统和数据分析。sas系统和数据分析用在data步的控制语句(编辑修改稿)
相关推荐
stdt yymmdd10. exchflg $1. stktype $1.。 informat stkcd $6. lstknm $12. lstdt yymmdd10. delistdt yymmdd10. exchflg $1. stktype $1.。 label stkcd=39。 股票代码 |stock code39。 lstknm=39。 最新股票名称 |latest stock
换上平民服装与杜元纪出城东行,登上古坟墓,观望云气。 有人告发李义府窥测灾异,图谋不轨。 他又派遣儿子右司议郎李津找长孙无忌的孙子长孙延,收受七百缗钱后,授给长孙延司津监的官职。 右金吾仓曹参军杨行颖将此事告发。 夏季,四月,乙丑(疑误),朝廷将李义府逮捕入狱,派遣司刑太常伯刘祥道与御史、详刑寺官员共同审讯,还命令司空李世 监督此事。 他所犯罪行都属实。 戊子(初五),唐高宗下诏令
wer should be Copyright 169。 The McGrawHill Companies, Inc. Permission required for reproduction or display. Race Condition Time Line T h r e a d A T h r e a d BV a l u e o f a r e a1 1 . 6 6 7+ 3 .
建立 SAS学生基本情况数据集 按班级 、 学号升序 , 总学分降序排列。 3 、 在 OUTPUT 窗 口 输 出 该 表 , 输 出 格 式 : 出 生 日 期YYMMDD10. X性别男 =boy, 女 =girl 36 一般统计描述 MEANS 过程 Proc means [操作选项 ][统计量关键字列表 ]。 [VAR 变量名列表。 ]/*指定分析的变量名列表 ,缺省为所 有数值变量
er 键,都可启动 SAS/ASSIST 软件,主菜单如图 所示。 共有 11 个子系统: TUTORIAL DATA MGMT (DATA Management) REPORT WRITING GRAPHICS DATA ANALYSIS PLANNING TOOLS EIS REMOTE CONNECT RESULTS SETUP INDEX
订 制的二维正态分布的联合密度函数的图形 上海财经大学经济信息管理系 IS/SHUFE Page 5 of 13 语句绘制的 二维散布图相比,三维散布图能表现三个变量 X、 Y、 Z 在三维空间中的关系和趋势,而二维散布图只能表现二个变量 X、 Y 在二维平面上的关系和趋势。 下面,我们以上证指数中的日期 DATE、成交量 VOLUME、收盘价 CLOSE 三个关键变量的值来绘制三维散布图