第二章[SAS编程基础]

合集下载

第2章 SAS编程基础

第2章 SAS编程基础
顺序语句
最常见,系统按照语句自身顺序进行解释执行。 如: data file1;
input mane$ 1-8 age sex$ height weight ; cards ; Zhang ji 28 m 1.75 60 Li ming 27 f 1.72 58 Wang jie 31 f 1.80 65 ; PROC print ; Run ;
19:02 25
SAS程序中的运算与表达

SAS表达式
用操作符将常量、变量、函数等连接起来进行运算, 最终会产生一个值(表达式的值)。
运算优先级:算术 > 比较 > 逻辑
19:02
26
sas程序的基本结构14sas系统中的常见过程sas程序的基本结构过程名作用输出结果print显示数据集的变量名及变量值变量变量值sort对指定变量进行排序对指定变量进行升降序排列means对数值型变量进行描述性统计分析均值标准差极值等univariate对数值型变量进行描述性统计分析常见统计量t检验分位数极端值freq对定序变量进行描述性统计分析累计频数频率等chart对指定变量绘制文本形式的图形饼图直方图星形图gchart在graph窗口中对指定变量绘图饼图直方图星形图15e程序program由sas语句组成的集合称sas程序
例如:计算1~100之间所有奇数之和。
编程如下: 结果如下:
20
SAS程序的结构化编程语句
2)当循环:
语法: do while (继续循环条件表达式) ; …; end;
例如:计算1~100之间所有偶数之和。 编程:
结果:
21
SAS程序的结构化编程语句
3)直到循环:
语法: do until (退出循环条件表达式) ; …; end;

02SAS编程基础

02SAS编程基础

*

A*B*3
/ +
除 加
X/A 5+C
-

C-A
输出结果: X=22.917651494 Y=9.3333333333 Y=.
比较算符
比较算符应用。 例2.9 比较算符应用。 if x<y then c=5; else c=12;
算符 ** * / + -
含义 乘方 乘 除 加 减
举例 A**2.5=A2.5 A*B*3 X/A 5+C C-A
第2章 SAS编程基础 章 编程基础
清华大学经管学院 朱世武 Zhushw@ Resdat样本数据: 样本数据: 样本数据 SAS论坛: 论坛: 论坛
SAS语言元素 语言元素
主要的SAS语言元素包括: 语言元素包括: 主要的 语言元素包括 数据集选项; 数据集选项; 输出和输入格式; 输出和输入格式; 函数和CALL子程序; 子程序; 函数和 子程序 应用响应测量宏; 应用响应测量宏; 语句; 语句; SAS系统选项; 系统选项; 系统选项 表达式。 表达式。 表达式部分内容很多,后面章节有专门介绍。 表达式部分内容很多,后面章节有专门介绍。
例2.11 连接带空格的字符值。 data; X=’GOOD ’; Y=’MORNING’; Z=X||Y; put Z=; run; 结果显示为 Z=GOOD MORNING NOTE: 数据集 WORK.DATA1 有 1 个观测和 3 个变量。
SAS变量 变量
SAS变量分为数值变量和字符变量。 数值变量 数值变量是SAS系统以浮点(floating-point)方式存储的数 据变量,数值变量包括日期和时间。 数值变量的值只能是数值。 字符变量 字符变量可以由阿拉伯字母、数字0-9以及其它一些特殊字 符组成。 字符变量的值可以是字符、字母、特殊字符和数值。字符变 量名后跟一个美元号($)表示该变量是字符型而不是数值 型。

第2章 SAS编程基础

第2章 SAS编程基础

SAS 统计分析与应用 从入门到精通 四、数据输出
2、输出到外部文件
联合使用PUT语句和FILE语句,可以实现将数据输出到外部文件。 其中,FILE语句用于定义要输出外部文件,其语句格式为: FILE ‘文件路径’ <选项>; 文件路径包括完整的路径和文件名。选项用来控制输出数据如何 被写入到输出文件中。 PUT语句用于实现数据输出,跟INPUT语句的格式类似,但功能 正好相反。PUT语句通过采用不同语句格式可以将数据按不同的形式 输出,基本的输出形式有:按列输出、列表输出和格式化输出。
SA程序结构 3、过程步
过程步要求SAS从系统中调出一个过程(对应一种统计分析方法或 一种数据呈现功能),并对指定的数据集执行这个过程。过程步以 PROC语句开头,指出调用的过程名和要分析的数据集,其后的各语句 用来指定调用过程的各个参数。过程步的一般形式为:
SAS 统计分析与应用 从入门到精通 二、变量、常数、表达式和函数
3、表达式
表达式由运算对象和运算符组成,它在被执行后产生一个目标值。 运算对象一般是变量和常数,运算符主要包括算术运算符、比较运算符、 逻辑运算符、函数和括号等。 下面的几个例子都是表达式:
Y=X+1; LOG(X); N<500;
SAS 统计分析与应用 从入门到精通 二、变量、常数、表达式和函数
SAS表达式中的基本运算符包括: 算术运算符:+(加)、*(乘)、-(减)、**(乘 方)、/(除) 比较运算符:= 或 EQ(等于)、^= 或 NE(不等于)、 > 或 GT(大于)、< 或 LT(小于)、>= 或 GE(大于或 等于)、<= 或 LE(小于或等于)、IN(在列表中)、 NOTIN(不在列表中) 逻辑运算符:& 或 AND(与)、| 或 OR(或)、^ 或 NOT(非) 其他运算符:<>(最大)、><(最小)、||(连接)

SAS编程基础

SAS编程基础

第一章:DATA 步阐述DA TA 步是SAS 的一个关键步,正确理解其执行过程将会学习起来更方便。

1)DATA 步是一个循环,数据是一行一行地执行(与SQL 过程不同,它是对整个数据集进行操作);2)DA TA 步在执行时,将数据放在PDV 中,在这里将数据整理成想要的格式3)有三种情况可将PDV 中的数据输出到数据集中,OUTPUT 语句,return 语句,data 步结尾(;或run;)Output 语句:此语句出现在data 步中间时,将PDV 中数据输出到SAS 数据后,继续执行直到data 步结尾。

Return 语句:将pdv 中数据输出到SAS 数据集后,返回到data 步开头,执行下一次循环。

data 步结尾(;或run;):缺省形式,也是必须语句,否则DATA 步不完整。

相当于一个放在data 步结尾处的return 语句。

注:当一个DATA 步中含有OUTPUT 语句时,当执行到语句output 时才输出PDV 中的数据,data 步结尾处的默认输出不起作用。

4)退出SAS 数据步:stop 语句和abort 语句;其作用是退出DATA 步,并丢掉PDV 中的数据。

data aa; input ss pay; if _error_ then delete ; pi=constant('PI');/*常数pi*/ format pi 15.13; e=CONSTANT('e');/*常数e*/ datalines ; 111 100 aaa 200 444 300 run ; proc print ;run ;结果相同(只读取了第一条观测),左边在LOG 窗口显示一个提示,右边则显示一个出错信息注:abort<return|abend>,退出SaS 系统(与正常退出相同,有相关提示)。

5)DA TA 步的短路: IF expression ;(子集IF 语句):若表达式是假,系统立即返回到DATA 步开头,继续执行下一条观测,且不处理当前观测。

第2章--SAS编程入门

第2章--SAS编程入门
第六页,编辑于星期二:十九点 三十二分。
SAS算符
? 比较算符:建立两个量之间的一种关系,并
要求 SAS确定这种关系是成立不成立。如果 它成立,输出的运算结果是 1;如果不成立,
运算结果为 0 ? 算术算符:就是数学运算中常用的五种运算
符号
? 逻辑算符:通常用来连接一系列比较式
第七页,编辑于星期二:十九点 三十二分。
PROC 步对 SAS 数据集内的数据进行分析处 理并输出结果。 PROC 步要求 SAS从过程中 调出一个过程并执行这个过程,通常用 SAS 数据集作为输入。
第九页,编辑于星期二:十九点 三十二分。
SAS程序示例
? data whb.phones;
input name$ phone room height; cards; rebeccah 424 112 1.5648 carol 450 112 5.6235 louise 409 110 1.2568 gina 474 110 1.3652 mimi 410 106 1.6542
语句后,写入以下语句:
? infile ‘外部文件的所在位置及名称' 选项; ? input 变量名 1变量名 2 …变量名n; ? infile 语句用于从外部文件读入数据,必须出现在
input 语句之前。它的功能是指定一个包含原始数
据的外部文件。
第十三页,编辑于星期二:十九点 三十二分。
DATA 步入门
? MEANS
计算基本统计量
? CHART 制作次数分布表 次数分布图
? UNIVARIATE PLOT 正态分布检验
? PRINT 数 据 输 出
? SORT 数 据 排 序
? Tabulate 制作表格

第2章 sas语言基本概念

第2章  sas语言基本概念

第2章 SAS语言概述 章 语言概述
变量的属性( 变量的属性(续) 2.4.1 变量类型:数值型变量的值是数值。 变量类型: 字符型变量是以字符串为其值。一个字 符型变量的值最多可达200个字符。 2.4.2 变量的长度是指在数据集中存储其 变量的长度 值的字节数,默认值是8。 2.4.3 变量的格式标号是赋给变量一显示 输出的符号串(可以是汉字) 输出的符号串(可以是汉字)。
第2章 SAS语言概述 章 语言概述
2.4 变量的属性
SAS变量 变量分为数值型与字符型。每个变量都具 变量 有长度、 输入输出格式和标号等四种属性。
变量属性 类型 长 度 输 入 格 式 输 出 格 式 数值 字符 数值 字符 数值 字符 标号 0-40个字符 见有关INFORMAT/ FORMAT语句的章 节 可能值 数值或字符 3-8字节 1-200字符 默认值 数 值 8字节 LENGTH/ATTRIB 8字符 w. $w. w. FORMAT/ATTRIB $w. 空 格 LABEL/ATTRIB INFORMAT/ATTRI B 定义语句 LENGTH/ATTRIB
SAS输出窗口 GRAPH窗口
SAS程序中数据流向示意图
第2章 SAS语言概述 章 语言概述
数 据 行
DATA one; INPUT a b x y; CARDS; 1 2 3 4 5 6 7 8 ; PROC RUN; PRINT;
第2章 SAS语言概述 章 语言概述
ASCII码文件 码文件
DATA two ; INFILE ” c:\work\ a.dat ”; INPUT a b x y ; PROC PRINT ; RUN ; 保存在C盘的work 子目录下的数据 文件a.dat: 1 2 3 4 5 6 7 8

SAS笔记第二章,编程概述

SAS笔记第二章,编程概述

2014.5.17 data语句(通过data语句简单输入数据)data a.k;input total math chineseenglish;cards;243 80 81 82246 81 82 83249 82 83 84;procprint;run;结果如图:注:data a.k;input total; math; chinese; english;/*当输入变量名中含有;时,cards语句要变成cards4 而且在数据下面不再是单个; 而是四个;;;;*/cards4;243 80 81 82246 81 82 83249 82 83 84;;;;procprint;run;结果如图:Data语句中输入符号变量,需在input语句的变量名后面加$符号。

data a.l;input name$ math chineseenglish;cards;张三80 81 82李四81 82 83王五82 83 84;procprint;run;结果如图:如若在input语句后的变量名没有加$符号,但是在数据集中又输入符号变量,则会出现:Input语句后面的变量名如果在变量名的后面再加数字,则表明该变量所占据的列数。

data a.m;input name$ 1-2 math$ chineseenglish;/*表示name变量占据第1,2列,后面同理*/cards;张三80 81 82李四 81 82 83王五82 83 84;procprint;run;结果如图:(一般跟在input语句后面变量名的后面或format语句后面)下面介绍一些常用的格式输入:W. :表示宽度为w位的数字。

W.D :表示带有小数点的标准数字。

例8.2:如-1234.56 。

其中负号和小数点各占一个位。

$W :表示字符串为W位。

Commaw.d:表示与W.D的用法类似,不过在数据输出时数字的格式是美式的,即三个数字之间空格隔开。

Chapter2 SAS软件入门PPT课件

Chapter2 SAS软件入门PPT课件
则输入值为缺省值,用小数点表示; ⑤ 可以只输入数据行中的某些项而忽略其他项。
2020/11/24
第7页,共37页
Data LearnSAS.exam2;
input name $ 1-11 sex $12-17 year 24-27 month 28-29 day
30-31;
date=MDY(month,day,year);
如有空白则被忽略; ④ 在Input语句中必须列出观测中每一项数据对应的变量名,而
不能省略中间的某一个。
2020/11/24
第5页,共37页
Data LearnSAS.exam1;
input var1 var2;
var3=dif1(var2);
time=intnx('month','01jul2005'd,_n_-1);
第10页,共37页
2. 读入其他微机文件 如“读入D盘--->Teaching文件夹--->课 程讲义文件夹--->金融建模与计算2010 文件夹---> SAS基础程序文件夹下的 stud.xls文件”
2020/11/24
第11页,共37页
Proc Import out=LearnSAS.Exam4 DataFile='D:\Teaching\课程讲义\金融建模与计算 2010\SAS基础程序\stud.xls'
/*InFile语句应该放在Input语句前面*/ DBMS=Excel2000 Replace; GetNames=Yes; Run;
2020/11/24
第12页,共37页
3. 与大型数据库接口 如在数据库服务器Server_SFS中有一个数据 库 Finance , 其 中 有 一 个 表 Sales , 用 户 名 Guest,密码anyone
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章 SAS 编程基础第一节常量、变量与观测值2.1.1 观测值描述单一整体,如个别人、一个实验动物、一年、一个地区某些特性的一系列数据值称为观测值,又称观察。

2.1.2 变量给定特性的数据值的集合组成了变量。

在SAS数据集中,每一个观测值是由各个变量的数据值组成。

在数据集中每一列数据是一个变量。

1.命名SAS变量名和其他名称如数据集名等的命名规则都相同,它可以多至8个字符长,第一个字符必须是字母(A,B,C,….,Z),或者是下划线(_),后面的字符可以是数字或下划线。

空格不能出现在SAS名中,特殊字符(如$,@,#)也不允许在SAS名中使用。

SAS 系统保留了一定的名称作为特殊的变量名,这些名称以下划线开始和结尾。

如_N_和_ERROR_等。

2.变量特性SAS变量有两种类型,数值型和字符型。

字符型变量在名后用一“$”号来表示。

除了他们的类型外,S A S变量还有下列特性:长度、输入格式、输出格式和标记。

变量的长度特性,是指在SAS数据集中用以存储它的每一个值的字节数。

缺省长度是8(为了存储长度与缺省值不同的变量,需使用LENGTH语句)。

变量的特性,或者明确地说明,或者在它们首次出现时的上下文中给出定义。

例如:DATA A;C='BAD';PUT C;C='GOOD';PUT C;RUN;C在第一次出现时已被定义成字符型变量,长度为3,因此第二次再向c中赋值GOOD时,由于c已被定义成长度为3,故c中只存有‘GOO’。

PUT语句的作用是把变量的值输出到LOG窗口。

变量的其他特性将在后面逐渐介绍。

3.变量清单的简化表示在SAS程序中定义了完整的变量清单后,就可以在后面许多语句中使用缩写变量清单形式。

名称形式缩写意义形如:X1,X2,…Xn的带有序号的名称X1-Xn 从X1到Xn的所有变量形如 X P A * 的名称范围X-A 从X到A的所有变量X-NUMERIC-A 从X到A的所有数值变量X-CHARACTER-A 从X到A的所有字符变量特殊SAS名称_NUMERIC _ 所有数值变量_CHARACTER _ 所有字符变量_ALL _ 所有变量例如:INPUT NAME $ VARl VAR2 VAR3 VAR4 VAR5 VAR6;也可以写成:INPUT NAME $ VARl一VAR6;注意字符型变量NAME不包含在这个缩写清单中,有序号的变量不必全部列出,这些变量要求类型相同,或全是数值型的或全是字符型的。

4.缺项值当一个变量由于某种原因没有得到(可能没有观测到,或由于数据错误;或由于计算错误),称该值为缺项值(又称缺失值). 在SAS中用“.”表示。

2.1.3 常量SAS常量是一个数,或一个括在引号中的字符串,或者是一个指示固定值的特殊的标记。

S A S常用3种常量:数值,字符,日期,时间或日期时间值。

常量可被用于赋值、求和、IF、SELECT、RETAIN,PUT和ERROR 语句中,或作为特定过程的可选项的值。

1.数值常量数值常量可为正负整数和小数,对于过大和过小的数则用科学记数法表示。

如:1.785E-9即1.785*10-9,对于数值型量的缺项值用“.”来表示。

2.字符常量一个字符常量可由1至200个字符组成。

例如:姓名Zhangli,性别Male等。

字符型缺项值用空格来表示。

3.日期、时间和日期时间常量用单引号括起日期时间值,后面接着用一个D(DATE)、T(TIME)或DT(DATETIME)来表示其类型。

下面是几个例子:.'1JANl980'D.'9:25'T.'9:25:19'T.'18JAN80:9:27:05'DT为了将日期、时间或日期时间值赋给变量,应指出变量的输入格式或输出格式:TIME.、DATE.、和DATETIME.。

第二节 SAS函数SAS函数是一个程序,它对一个或多个参数进行计算后返回一个值。

每一个SAS函数有一个关键字名,为了调用一个函数,写出函数名接着是括在括号中的一个或多个要进行计算的参数:函数名(参数,参数)当参数多于一个时,参数之间应该用逗号分隔,也可写成如下两种形式之一:函数(OF 变量1-变量n)函数(OF 变量1 变量2 变量3)例如下列形式是正确的:SUM(OF X1一X100 Yl—Y100)SUM(OF X Y Z)SUM(X1,X2,X3,X4)2.2.1 算术函数ABS(x) 返回x的绝对值DIM(array) 返回数组中元素个数MAX(X,Y,…) 返回X,Y….中的最大值MIN(X,Y….) 返回X,Y….中的最小值MOD(X,Y) 计算x/y的余项SIGN(x) 返回参数x的符号或OSQRT(x) 计算x的平方根还有LBOUND和HBOUND等函数。

2.2.2 数学函数EXP(x) e的幂LOG(x) 产生自然对数LOG2(x) 计算底为2的对数LOG10(x) 计算底为10的常用对数D I G A M M A(x)计算G A M M A函数对数的导数还有E R F、E R F C、G A M M A、L G A M M A等函数。

2.2.3 三角函数和双曲函数COS(x) 计算余弦SIN(x) 计算正弦TAN(x) 计算正切还有ARCOS、.ARSIN、ARTAN、COSH、SINH、TANH等函数。

2.2.4 概率函数PROBBNML(p,n,f) 二项式(BINOMIAL)概率分布函数;PROBCHI(x,df) 卡方概率分布函数PROBF(x,ndf,ddf) F分布函数PROBNORM(x) 标准常规概率分布函数PROBT(p) STUDENT'S T分布函数还有POISSON,PROBBETA、PROBGAM、PROHYPR、PROBNEGB等函数。

2.2.5 分位数函数CINV(p,df,nc) 卡方分布分位数FINV(p,ndf,ddf,nc) F分布分位数TINV(p,df,nc) T分布分位数还有BETAINV、GAMINV、PROBIT等函数。

2.2.6 样本统计函数MEAN(x,y...) 计算算术均值STD(x,y,...) 计算标准差SUM(x,y,...) 计算参数和VAR(x,y,….) 计算方差还有CSS、CV、KURTOSIS,MAX,MIN,N,NMISS,RANGE、SKEWNESS、STDERR,USS等函数。

2.2.7 随机函数RANNOR(x) 产生一正态偏差RANUNI(x) 产生一均匀偏差还有NORMAL,RABIN,RANCAU、UNIFORM、RANEXP,RANGAM、RANPOI、RANTBL、RANTRI等函数。

2.2.8 字符函数INDEX(a,b) 求字符串b在字符串a中的位置LEFT(a) 左对齐一个字符串LENGTH(a) 返回字符串a的长度。

RIGHT(a) 右对齐一字符串TRIM(a) 移走字符串尾部的空格还有BYTE、COLLATE、COMPRESS、INDEXC、RANK、REPEAT,REVERSE、S C A N、S U B S T R、T R A N S L A T E、U P C A S E,V E R I F Y等函数。

2.2.9 日期和时间函数DATE() 返回今天日期作为SAS日期值DAY(date) 从SAS日期值返回月份中的日数YEAR(date) 从SAS日期值返回年数还有DATEJUL、DATEPART、DATETIME、DHMS、HMS、HOUR、INTCK、INTNX、JULDATE、MDY、MINUTE、MONTHQTR、SECOND、TIME、TIMEPART、TODAY、WEEKDAY、YYQ等函数。

第三节SAS操作符S A S操作符是表示需要作算术计算、比较或者逻辑操作的记号。

2.3.1算术操作符算术操作符指出一个要执行的算术计算。

算术操作符是:* * 乘方 * 乘/除 +加 -减对于一个算术操作符的操作数若为缺项值,结果也为缺项值。

2.3.2 比较操作符比较操作符要求SAS确定两个数据量间是否存在这种关系。

如果不存在(换句话说如果它是假的)其结果值为0。

比较操作符是:=或EQ 等于 ^=或NE 不等于>或GT 大于 <或LT 小于>=或GE 大于等于 <=或LE 小于等于对字符值比较也与数值比较一样,比较总是输出一个数值结果(1或0)。

字符操作数被从左到右一个字符一个字符地按ASCII码值进行比较。

比较算符主要用于条件语句中,但也可用于赋值语句中,例如:IF X<Y THEN C=15;ELSE C=12;可写成:C=15*(X<Y)+12*(X>=Y);2.3.3 逻辑操作符逻辑操作符也叫布尔算符。

它通常用在连接一系列比较表达式中。

符号如下:& AND | OR ^ NOT如果A N D两端都为真,那么A N D操作的结果是1。

例如表达式:A<B & C>0仅当A<B为1(真)和C>0为1(真)时,也就是当A小于B,且c为正时,该表达式为真(值为1)。

如果OR两端至少有一个为l(即为真),那么OR操作的结果为1(真),否则OR操作结果为0值。

例如表达式:A<B | C>0只要两个关系中有一个成立时其值即为真。

2.3.4 其他操作符这些操作符是 >< (MIN),<> (MAX)和 || (连接)>< 和<>算符放在两个量之间,其结果如果用的是><则取其中最小值,如果用的是<>则取其中最大值。

例如,如果A<B那么A><B 的值为A。

||算符联接两个字符值。

例如,如果变量COLOR的值是'RED',同时变量NAME的值为‘BAG’,那么:M=COLOR ||NAME;M的结果值是RED BAG。

如果在连接前要从各个值中滤掉尾部空格,可使用T R I M函数。

2.3.5 SAS表达式表达式是由一系列操作符和操作数形成的一条指令,它被执行时产生一个结果值。

表达式可以是简单的(仅用一个操作符),或复合的(使用多个操作符)。

下面是表达式的例子:.X+1.3.LOG(Y).PART/ALLL*100.1一EXP(N/(N一1)).AGE<100.STATE='NC'|STATE='SC'·A=B=C在DATA步编程语句中使用表达式,以转换变量,建立新的变量,进行条件处理,计算新值和赋新值。

注意:在操作中,如对数值量进行了字符操作或对字符型数值量进行了数值操作,SAS会自动地进行相应的转换。

相关文档
最新文档