sas编程技术数据步修改与选择观测(编辑修改稿)内容摘要:
范围内的观测 Where x between 1 and 5。 where 1=x=5。 例 不能用 WHERE语句的情况 data a。 set。 where _n_100。 /*错误语句,必须用 if */ run。 data a。 set。 if _n_100。 run。 例中,不能用 WHERE语句控制 SAS的自动变量。 OUTPUT语句 OUTPUT语句输出当前的观测到被创建的数据集中。 语句格式 OUTPUTdatasetname1 …data setnamen。 选项说明: OUTPUT语句的作用: 由一个输入数据行创建多个观测; 由一个输入数据文件创建多个 SAS数据集; 由几个输入数据行合并为一个观测。 没有选项 将当前观测输出到 D A T A 语句中命名的所有数据集中d a ta s e t n a m e 规定输出当前观测的数据集应用举例 例 由一个输入数据行创建多个观测 data A。 input ID $ score1 score3。 drop score1 score3。 score=score1。 output。 score=score2。 output。 score=score3。 output。 cards。 02126 99 96 94 02128 89 90 88。 proc print。 run。 例中,每一行记录生成三个观测。 每个新观测将包括代号 ID和一次测验值 SCORE. Obs ID score 1 02126 99 2 02126 96 3 02126 94 4 02128 89 5 02128 90 6 02128 88 例 一个 DATA步创建多个数据集 data A B。 set。 if Stktype=’A’ then output Astk。 else if Stktype=’B’ then output bstk。 run。 例中,一个 DATA步创建两个数据集。 数据集 Astk包含变量 Stktype=’A’’的所有观测;数据集 Bstk包含变量 Stktype=’B的所有观测。 例 由几个记录组合信息 proc sort data= out=lstkinfo。 by stktype。 data a。 set lstkinfo。 by stktype。 if first. Stktype then Num=0。 Num+1。 keep stktype num。 if then output。 run。 例中,计算数据集 lstkinfo中两类不同股票的数目。 这样的方法是不是简单快捷。 这个例子很有用,从这里也认识了自动变量: first. stktype 和 last. stktype的使用方法。 数据处理时用这个语句会很省力。 MISSING语句 MISSING语句规定缺失值的符号。 读入含有缺失值的数据源时,必须用 MISSING语句,否则可能产生读入错误。 语句格式 Missing charcter1… charctern。 其中: charcter规定代表缺失值的字符。 应用举例 例 规定缺失值字符 data period_a。 missing X I。 input Id $4. Foodpr1 Foodpr2 Foodpr3 Coffeem1 Coffeem2。 datalines。 1001 115 45 65 I 78 1002 86 27 55 72 86 1004 93 52 X 76 88 1015 73 35 43 112 108 1027 101 127 39 76 79。 例中, MISSING语句规定用字符 X和 I表示缺失值。 如果不用 MISSING语句,当读入数值变量的缺失值时(这里为 X和 I), 就要产生错误。 Id Foodpr1 Foodpr2 Foodpr3 Coffeem1 Coffeem2 1001 115 45 65 I 78 1002 86 27 55 72 86 1004 93 52 X 76 88 1015 73 35 43 112 108 1027 101 127 39 76 79 其它语句 本节介绍语句 LIST, CALL, NULL和 ERROR. LIST语句 LIST语句在 SAS日志窗口上列出正被加工处理观测的输入数据行。 LIST语句被执行时 , 在列出的第一行记录之前 , 显示一条指示列数的标尺。 语句格式 LIST。 例 用 INPUT语句读入可疑数据行时使用 LIST语句 data a。 input x y。 if x0 then list。 cards。 2 6 4 2 1 2 4 6。 run。 290 data a。 291 input x y。 292 if x0 then list。 293 cards。 RULE: +1+2+3+4+5+6 296 1 2 297 4 6 NOTE: 数据集 有 4 个观测和 2 个变量。 NOTE: “DATA 语句”所用时间(总处理时间) : 实际时间 秒 CPU 时间 秒 298。 299 run。 LOG显示结果 CALL语句 CALL语句用于调用子程序。 语句格式: Call routine (parameter1… parametern)。 选项说明: R o u ti n e 规定要 调用 的子程序P a r a m e te r 传递给子程序信息的参数或变量名等例 创建包含 DATA信息的宏变量 data a。 call symput (39。 text139。 , 39。 march39。 )。 /*将 march赋给宏变量text1 */ call symput (39。 beta39。 , 100)。 /*将 100赋给宏变量 beta */ run。 例 发布操作系统命令 NULL语句 空语句是一个分号 (。 ), 用于固定位置。 SAS系统用一个分号 ( ; ) 或四个分号 ( ;;;; ) 来接受空语句。 一个分号 ( ; ) 表示 CARDS( 或 DATALINES) 语句后数据行的结束。 四个分号 ( ;;;; ) 表示 CARDS4( 或 DATALINES4) 语句后数据行的结束。 虽然空语句没有执行动作,但它是可执行语句。 例 空语句表示数据行结束 data a。 input x y z。 if x=. Then goto find。 list。 find :。 drop x。 cards。 1 2 5 . 1 3 2 5 8 . 3 9。 proc print。 run。 在这个 DATA步, CARDS语句告诉 SAS 系统在这个作业流中,紧跟着的是数据行,当 SAS遇到空语句(。 )时,就知道数据行结束了。 上例中的空语句也可以省略,因数据行后面第一个语句( PROC PRINT。 ) 中包含一个分号。 输出窗口显示结果 Obs y z 1 2 5 2 1 3 3 5 8 4 3 9 ERROR语句 ERROR语句置自动变量 _error_为 1, 并有选择地输出用户规定的一段信息到 SAS的记录窗口。 语句格式: ERROR message。 选项说明: 没有选项 规 定 _ E R R O R _ 为 1 , 但 没 有 在L O G 窗口输出任何信息M e s s a g e 规定输出的信息ERROR语句等价于下面一系列语句: 赋值语句置 _ERROR_为 1; 一个 FILE LOG语句; PUT语句规定一段信息; 新的一个 FILE语句重新设置前一个 FILE 语句的设置。 例 应用举例 data a。 input name $ type $ age。 if type=39。 teen39。 amp。 age 19 then error 39。 type and age dont macth39。 age=。 cards。 Wu teen 20 Li teen 12 Cindy adult 28。 314 data a。 315 input name $ type $ age。 316 if type=39。 teen39。 amp。 age 19 then error 39。 type and age dont macth39。 age=。 317 cards。 type and age dont macthage=20 RULE: +1+2+3+4+5+6+7+8 318 Wu teen 20 name=Wu type=tee。sas编程技术数据步修改与选择观测(编辑修改稿)
相关推荐
这一部分属于动态计量经济学的范畴。 通常是运用时间序列的过去值 、 当期值及滞后扰动项的加权和建立模型 , 来 “ 解释 ” 时间序列的变化规律。 在时间序列模型的发展过程中,一个重要的特征是对统计均衡关系做某种形式的假设,其中一种非常特殊的假设就是平稳性的假设。 通常一个平稳时间序列能够有效地用其均值、方差和自相关函数加以描述。 本章首先通过讨论回归方程扰动项通常会存在的序列相关性问题
设,其中一种非常特殊的假设就是平稳性的假设。 通常一个平稳时间序列能够有效地用其均值、方差和自相关函数加以描述。 本章首先通过讨论回归方程扰动项通常会存在的序列相关性问题,介绍如何应用时间序列数据的建模方法,修正扰动项序列的自相关性。 进一步讨论时间序列的自回归移动平均模型( ARMA模型),并且讨论它们的具体形式、估计及识别方法。 由于传统的时间序列模型只能描述平稳时间序列的变化规律
由度 N 1W E I G H T | W G T 规定除数使用权数和N 规定除数使用观测个数 NW D F 规定除数使用权数总和减 1其它语句 VAR语句 VAR variablelist。 规定将要计算描述统计量的数值变量及次序。 缺省时,为BY, CLASS, ID,FREQ和 WEIGHT语句中列出的变量之外所有数值变量。 BY语句 BY variablelist。 对 BY变量定义
select * from B。 quit。 A UNION B x y 1 one 2 two 3 three 4 four 产生只属于第一个查询的观测 (EXCEPT算符 ) proc sql。 title 39。 A EXCEPT B39。 select * from A except select * from B。 quit。 A EXCEPT B x y 3 three
性。 为了便于比较,我们将原始时间序列和消除增幅后的时间序列按 12 个时间单位的间隔绘制在一张图表上。 程序如下: data arimad02。 set arimad01。 xlog=log(x)。 proc print data=arimad02。 run。 proc gplot data=arimad02。 plot xlog*date / vaxis=axis1 haxis=axis2
Bounds on condition number: 1, 1 Step 2 Variable AGE Entered Rsquare = C(p) = DF Sum of Squares Mean Square F ProbF Regression 2 Error 28 Total 30 Parameter Standard Type II Variable Estimate Error