SAS编程语言基础

合集下载

SAS编程基础..

SAS编程基础..

TANGJIE
2 35 169.2 60.8
GAOJUN
2 24 176.0 73.3
SUNHONG 2 27 158.3 49.9
;
PROC MEANS;
CLASS SEX;
VAR HEIGHT WEIGHT;
RUN;
❖ DATA STEP(数据步)
以DATA语句开始 将数据读入SAS系统,建立SAS数据集
INPUT NAME $ V1 V2 V3 V4 V5 V6;
可以写成:
INPUT NAME $ V1-V6;
注意: 字符型变量NAME不包含在这个缩写清单中。 这些变量要求类型相同,或全是数值型的或全是字 符型的。
v1 1-2 v2 3-4 v3 5-6 可表示为(v1-v3)(3*2.) 或(v1-v3)(2.2.2.) 表示共有三个变量,每个变量有两位数据
观测(Observation,OBS)
描述被观测对象的单一整体(如一个人、 一个实验动物等)某些所研究特性的一系列数 据值称为一个观测,又称观察。在SAS数据集 中每一行数据是一个观测。
变量(Variable)
变量指定了数据的某一特性。在SAS数据 集中,每一个观测是由各个变量的数据值组成。 在数据集中每一列数据是一个变量。
三、SAS语句
SAS语句是由SAS关键词<操作数><选择项> 组成,以分号(;)结束 1、语句格式:关键词<操作数><选择项> 例: data one two (keep=x);
2、SAS语句的类型 可执行语句(X)例:PUT,IF,BY等 定位语句(P)例:DATA等 说明语句(D)例:LABEL等
回到程序编辑窗口,修改源程序,再执行 如果程序编辑窗口没有显示刚刚执行的程序,

SAS编程基础

SAS编程基础
(1) 提取职称为“工人”的观测:
data sy2_9_0; set mylib.sy2_2; if (zc = '工人');
run;
(2) 建立两个数据集:
data sy2_9_1; set sy2_9_0; keep bh xm jbgz;
run; data sy2_9_2;
set sy2_9_0; keep bh sfgz; run;
jbgz='基本工资' glgz='工龄工资' jj='奖金' kk='扣款' sfgz='实发工资';
cards;
3003 王以平 男 1992-8-1 助工
生产
620 300 500 0 1420
3004 林红
女 1993-8-1 助工
供销
620 280 500 200 1200
3005 吕兴良 男 1982-1-30 工程师 技术
代码如下:
data sy2_5; set mylib.sy2_2; drop gzrq; if jbgz < 600 then jbgz = 600;
run;
2. 增加新变量
【实验 2-6】在 mylib.sy2_2 中增加变量 yfgz(应发工资=基本工资+工龄工资+奖金)、生 成新的数据集 work.sy2_6。
data sy2_7_1 sy2_7_2;
4
SAS 软件与统计应用实验
set mylib.sy2_2; select;
when (jbgz<600) output sy2_7_1; when (jbgz>=600) out据集的纵向合并

很全的sas基础知识(一)

很全的sas基础知识(一)

很全的sas基础知识(一)5.1SAS表达式简介1.SAS常数表达式(1)数值常数如: 1.23、-5、0.5E-10。

(2)字符常数如: name1='TOME'、name2='MARY'、name3='JOHN'。

(3)日期(d)、时间(t)、日时(dt)常数如: d1='01JAN80'd、t1='9:25:19't、dt1='18JAN80:9:27:05'dt。

(4)16进制常数(略)2.SAS运算符(1)前缀算符与后缀算符前缀算符, 即正号或负号; 如: +Y; -25; -COS(30); +(X*Y); 后缀算符,即两个运算对象之间的运算符号, 如: 1+9; 4-2; 6<8。

(2)只含一个运算符的简单表达式(Ⅰ组)和含有多于一个运算符的复合表达式(Ⅱ组)Ⅰ组, 如: A+B; C-D; E*F; G/H; Ⅱ组, 如: 1-EXP(N/(N-1));100-LOG(N*(N+1));(3)操作运算的顺序求一个复合表达式的值时, 其操作运算的顺序和优先级遵从如下的规则(见表5.1): 表5.1SAS的运算符及其在运算顺序上的优先级━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━优先级组别运算符号等价表示运算符号含义之说明━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━第0 组()括号第 1 组**+-乘方, 正数, 负数^><<>NOT MIN MAX逻辑非, 最小, 最大第 2 组*/乘, 除第 3 组+-加, 减第 4 组‖或||字串连接第 5 组<<=LT LE小于, 小于等于=^=EQ NE等于, 不等于>=>GE GT大于等于, 大于IN等于一列元数中的某一个第 6 组&AND逻辑与第7 组|或|OR逻辑或━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━各组的计算顺序分别为: 第0组由内向外;其他各组均自左至右。

第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(非) 其他运算符:<>(最大)、><(最小)、||(连接)

2SAS编程简介2

2SAS编程简介2
2.SAS编程简介 编程简介
SAS程序由数据步和过程步构成, 程序由数据步和过程步构成, 程序由数据步 构成 数据步(Data Step)的设计灵活多样, 数据步( )的设计灵活多样, 过程步(Proc Step)的设计比较规范, 的设计比较规范, 过程步 的设计比较规范 我们先重点介绍SAS系统数据步(Data 系统数据步( 我们先重点介绍 系统数据步 Step)编程。 )编程。
– – – 以字母或下划线开头。 由字母、数字、下划线构成。 应用中不区分大小写英文字母。
每个SAS语句都必须以半角分号“;”作为结束符。 语句都必须以半角分号“ 作为结束符 作为结束符。 每个 语句都必须以半角分号 SAS数据步语句以 数据步语句以DATA关键字开头,以RUN语句结尾。 关键字开头, 语句结尾。 数据步语句以 关键字开头 语句结尾 DATA步中可以使用 步中可以使用INPUT、CARDS、INFILE、SET、 步中可以使用 、 、 、 、 MERGE等语句指定数据源,也可以用赋值、分支、循 等语句指定数据源, 等语句指定数据源 也可以用赋值、分支、 环等程序流程控制语句实现复杂情况处理, 环等程序流程控制语句实现复杂情况处理,完成复杂数 据结构的输入和数据准备。 据结构的输入和数据准备。
窗口内容保存----激活窗口后
– 在命令行(窗)键入 file “路径\文件名” 在命令行( 路径\ 路径 文件名” – 点击图标 – 在file下拉菜单中选“save ”或“save as file下拉菜单中选 下拉菜单中选“ as” 或
二、SAS程序和SAS数据集
常用的快捷键 –F4 recall命令 用于edit 命令, edit窗 F4 recall命令,用于edit窗,将前面提交的程序 调回, 调回,可多次使用 –F5 切换到edit edit窗 F5 切换到edit窗 –F6 切换到log log窗 F6 切换到log窗 –F7 切换到output output窗 F7 切换到output窗 –F8 submit命令 F8 submit命令 –Ctrl-E 清除当前窗口的内容。 edit窗被清除的内 Ctrl清除当前窗口的内容。 edit窗被清除的内 Ctrl 容不能用F4 F4调回 容不能用F4调回

SAS初级编程

SAS初级编程

第二章 这一章将学会通过程序编辑设置一个数据库。 通过使用编程语句定义新的库 显示SAS程序中的相关表格 设置系统选项来确定日期值是否读取同时控制输出的sas 时间的显示。 下面是不同的操作系统下的物理环境,新建逻辑库的物理 属性: Environment Sample Physical Name Windows c:\fitness\data UNIX /users/april/fitness/sasdata OpenVMS dua0:[april.fitness] CMS b z/OS (OS/390) april.fitness.sasdata windows下的运行情况: libname a 'E:\SAS\sss';
SAS程序步骤 data步: 数据步是产生数据集的一组语句。一个数据步可以建立一个或者多个 数据集。 一个程序中可以有多个数据步。数据步还可以对已建立的数据集进行 修改和 产生输出。在对数据进行分析和处理时,应先将数据直接录入 到Sas数据集 中,或者通过其他格式进行数据导入。 proc步: proc步总是以proc语句开始,然后通过运行sas过程名字。比如,运行 print过程,则使用语句“proc print”开始这个proc步。通常proc步只 需要包括一个proc语句给出运行过程的名字和一个run语句即可。 (1)告诉proc需要处理的数据集:如果使用过程中处理最近创建 的数据集,或者sas中只创建了一个数据集,则使用语句“proc print” 开始 ,然后加run语句。 proc print; run; 但如果使用过程处理中数据 集不是刚创建的,或者是已创建的永久保存的sas数据集或者创建了多 个数据集。则需要在proc语句的关键data=后面加上你要使用的sas 数据集的名字。

SAS基础编程

SAS基础编程

第三课 SAS编程–第一部分一.SAS 变量的定义/* 直接赋值 */data newvar;a1 = 100;a2 = 1.2e-5; /* 数值型变量的科学表达法 */b = 0100; /* 数值型变量前面的0不起作用 */c = ‘new’;d = “NEW” ; /*字符型变量输入时是什么,值就是什么*/f = “ NeW “;name1 = “Tom’s”;name2 = ‘Tom’’s’;date1 = ‘1jan2006’d; /* 直接定义日期 */ date2 = ‘01jan04’d;time1 = ‘9:25’t; /* 直接定义时间 */ time2 = ‘9:25:19’t;dtime = ‘18jan2003:9:27:05am’dt; /* 定义日期时间 */if begin=’01may04:9:30:00’dt then end=”31dec90:5:00:00”dt;run;proc print; run;/* 自定义变量 *//* 产生一个取值为 1 到 100 的变量 */data int;do i = 1 to 100; /* 此处 do … end 为循环语句, i 为循环指标,可取任何符号 */a = i;output;end;run;proc print; run;/* 简洁版 */data int;do a = 1 to 100;output;end;run;proc print; run;/* 通过各种运算定义变量 */SAS 算子用于比较: = (EQ) 等于,^= (NE) 不等于,~= (NE) 不等于, >(GT)大于,<(LT)小于, >=(GE)大于等于, <=(LE)小于等于算数运算:+ 加法,- 减法,* 乘法,/ 除法,** 幂次逻辑运算: & (AND) 和, | (OR) 或,~ (NOT) 非,^ (NOT) 非/* 旅游数据 */data travel;input country $ nights aircost landcost vendor $;cards;France 8 793 575 MajorSpain 10 805 510 HispaniaIndia 10 . 489 RoyalPeru 7 722 590 Mundial;run;data newair;set travel;length remarks $ 30; /* remark 的值会很长。

SAS学习(一):SAS基础

SAS学习(一):SAS基础

SAS学习(⼀):SAS基础1.类似SAS的统计程序还有:SPSS BMDP SYSTAT2.SAS界⾯主要有三个部分:程序编辑窗⼝(program editor),Log窗⼝(显⽰提交程序的主要语句及执⾏情况等)和输出窗⼝(output)3.提交执⾏程序可按功能键F3或者点击“Locals”,单击“submit”,或者单击⼯具栏中的运⾏图标(⼩⼈跑)4.程序运⾏后,标记窗⼝语句消失,如果log窗⼝显⽰有错,要先激活编辑窗⼝。

可直接按F4,也可以点击“Locals”,单击“recall text”.5.如果不关闭SAS,log窗⼝和结果输出窗⼝将会按先后保留历次执⾏的信息和输出结果。

为了⽅便阅读,要养成清理log窗⼝和输出窗⼝的习惯。

可先激活窗⼝,点击主菜单的“edit”,单击其中的“clear text”。

激活这两个窗⼝很简单:⿏标移⾄窗⼝单击左键;或单击当前窗⼝菜单栏中的“globals”或者“windows”,在其中选择相应的窗⼝。

6.SAS 系统是按每个观测向量逐⾏处理数据。

7.SAS中所说的变量相当于SQL中的字段名,观测向量相当于⾏。

8.SAS语句全部以分号(;)结尾,罪常见的语句错误时遗漏分号。

9.变量名的命名规则:以字母或者下划线(_)开头,最长不超过32个字符(数字字母下划线),不能使⽤空格和特殊字符(逗号冒号等)。

10.数字数据最好右对齐11.最好将结束的分号放在最后⼀⾏语句的下⽅12.使⽤缩进可以达到良好的视觉效果。

13.如果不指定烂位数,input数据时,缺失值⽤英⽂的点号(.)号代替14.SAS程序由SAS语句组成,定义数据和创建SAS数据集的语句群成为DATA步骤;需要实现定义指定的语句成为proc步骤。

15.如果多个proc语句,建议每个之后都加run;这是标准的格式,虽然只最后⼀个run;也可以。

⼀个简单的计算平均值的例⼦:数据集:上⾯的数据集有5个变量(被试编号性别测试1 测试2 作业等级),6个观测值(被试),现在我们来计算两次测试的平均值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 SAS编程语言基础
卫生统计教研室 彭斌
Slide 1
从原始数据到最终报告
卫生统计教研室 彭斌
Slide 2
§1、 SAS语句
SAS编程语言同其它计算机语言一样,也有自己的语法: 关键词和连结关键词与其它辅助信息的规则。
由SAS语句组成的序列称为SAS程序。
一.SAS语句的含义 我们先来看一个实例:
现在,我们给出SAS语句的定义:SAS语句是由关键词、 SAS名、特殊字符或运算符组成并以分号结尾的字符串。
卫生统计教研室 彭斌
Slide 6
二.几个概念 1.SAS关键词
位于句首的用以说明语句类型和功能的单词称为SAS语句的关键 词。它是SAS语句的主要成份。如:PROC、DATA、VAR、RUN等。 2.SAS名
68 71 65 良好 74 61 68 良好 73 75 46 良好 79 80 79 优秀 75 71 68 良好 85 85 87 优秀 78 79 75 优秀 80 76 79 优秀 85 80 82 良好 77 71 75 良好 67 73 71 优秀 75 81 70 良好 70 54 75 及格 70 66 84 及格 62 73 65 及格 82 70 79 优秀
(更多其它语句)
CARDS语句:用来指示数据行的开始;
数据行
;语句:表示数据行的结束。 RUN;
卫生统计教研室 彭斌 Slide 11
DATA关键词告诉系 统,要创建一个SAS 数据集,命名为score
INPUT关键词告诉系 统,数据在程序流中, 并且指明数据所对应 的变量名及类型。$符 号说明它前面的一个 变量为字符型。
x3 16 73.0000000 9.7911525 46.0000000 87.0000000
------------------------------------------------------------------------------
在这个例子中: DATA, INPUT, CARDS, PROC, VAR, RUN是关键词; score是数据集名; no, x1, x2, x3,x4是变量名;$是特殊字符; MEANS是过程名; Data=是MEANS语句中的选项。
;
RUN;
68 71 65 良好 74 61 68 良好 73 75 46 良好 79 80 79 优秀 75 71 68 良好 85 85 87 优秀 78 79 75 优秀 80 76 79 优秀 85 80 82 良好 77 71 75 良好 67 73 71 优秀 75 81 70 良好 70 54 75 及格 70 66 84 及格 62 73 65 及格 82 70 79 优秀
Minimum
Maximum
------------------------------------------------------------------------------
x2
16
72.8750000
7.8729495
54.0000000
85.0000000
x3
16
73.0000000
9.7911525
Variable N
Mean Std Dev Minimum Maximum
------------------------------------------------------------------------------
x2 16 72.8750000 7.8729495 54.0000000 85.0000000
12 20010890 75 81 70 良好
13 20011118 70 54 75 及格
14 20010893 70 66 84 及格
15 20010894 62 73 65 及格
16 20010909 82 70 79 优秀
The MEANS Procedure
Variable N
Mean
Std Dev
/*打印数据*/ PROC PRINT Data= score; VAR no x1 x2 x3 x4; RUN;
/*计算均数及标准差*/ PROC MEANS Data= score; VAR x2 x3; RUN;
; RUN;
利用这段程序就可以完成上面的要求
卫生统计教研室 彭斌
Slide 5
The MEANS Procedure
卫生统计教研室 彭斌 Slide 10
1.DATA步(数据步)
DATA步包括:创建一个或几个新的SAS数据集的语句和创建数据 集所必须的运算操作语句。
DATA步以DATA语句开头,可以包含任意多个SAS程 序语句。
一个DATA步的基本语句有:
DATA语句:表示创建SAS数据集; INPUT语句:对SAS数据集中的变量进行描述;
;
RUN;
68 71 65 良好 74 61 68 良好 73 75 46 良好 79 80 79 优秀 75 71 68 良好 85 85 87 优秀 78 79 75 优秀 80 76 79 优秀 85 80 82 良好 77 71 75 良好 67 73 71 优秀 75 81 70 良好 70 54 75 及格 70 66 84 及格 62 73 65 及格 82 70 79 优秀
The SAS System
09:22 Monday, August 16, 2004 10
Obs
no
x1 x2 x3 x4
1 20010873 68 71 65 良好
2 20010874 74 61 68 良好
3 20010875 73 75 46 良好
4 20010876 79 80 79 优秀
三.语句格式 SAS语句的基本格式是: 关键词 参数 [选项1|选项2|选项3] 选择值;
关键词:用以说明语句类型和功能的单词; 参数:要求用户提供的信息。不用括号,不是任选项。
卫生统计教研室 彭斌
Slide 8
例如:INPUT x y z; 其中:INPUT是关键词,它说明要把数据提供给哪些 变量。后面跟的变量名x、y、z 都是参数,即要求用户 提供的信息。
5 20010877 75 71 68 良好
6 20010884 85 85 87 优秀
7 20010885 78 79 75 优秀
8 20010886 80 76 79 优秀
9 20010887 85 80 82 良好
10 20010888 77 71 75 良好
11 20010889 67 73 71 优秀
高数 68 74 73 79 75 85 78 80 85 77 67 75 70 70 62 82
英语 71 61 75 80 71 85 79 76 80 71 73 81 54 66 73 70
生理 65 68 46 79 68 87 75 79 82 75 71 70 75 84 65 79
CARDS关键词告诉系统, 其后紧随着的便是数据。
数据行,数据源中不能 有分号(;)。
表示该数据步 结束
卫生统计教研室 彭斌 Slide 12
2.PROC步(过程步)
➢ PROC步要求SAS系统从过程库中调出一个过程模块并执行它。
➢ PROC步以PROC语句开始,可以包含多个相应的
SAS语句。
例如: PROC MEANS Data=score; VAR x2 x3;
SAS语句中出现的SAS名有很多种类,如变量名、SAS数据集名 等。
➢ SAS命名规则: 1)由1至32个字符组成(SAS7以下版本为最多8个字符); 2)由三种字符构成: 英文字母A-Z,a-z,下划线_,数字0-9; 3)每个名字的第一个字符不能为数字; 4)SAS系统保留了一些名字作为特殊的变量名,这些变量名的开头 和结尾都用特殊字符下划线表示(如_N_、_ERROR_等)。
• 在一条语句中各项之间至少要有一个空格; • SAS对大小写不敏感。即SAS语句用大写字母、小写字母或大、
46.0000000
87.0000000
------------------------------------------------------------------------------
卫生统计教研室 彭斌 Slide 15
1.SAS程序的书写方法
(1)书写格式
• SAS语句可以从一行上的任意位置开始;几个SAS语句可以写 在同一行上;一个语句也可以写成几行,只要语句中的单词 不被断开即可;
;表示数据行 的结束
DATA score; INPUT no x1 x2 x3 x4 $; CARDS;
20010873 20010874 20010875 20010876 20010877 20010884 20010885 20010886 20010887 20010888 20010889 20010890 20011118 20010893 20010894 20010909
卫生统计教研室 彭斌
Slide 9
§2、 SAS程序
一系列SAS语句组成一段SAS程序。SAS程序中的 语句可分为两类:DATA步和PROC步。这两类步骤是 所有SAS程序的组成模块。通常用DATA步产生SAS数 据集而用PROC步对SAS数据集内的数据进行分析处理 并输出结果。
一段SAS程序可由一个DATA步或一个PROC步组 成;或者由DATA步和PROC步两部分组成;也可由多 个DATA步和多PROC步组成。
PROC PRINT Data=score; VAR x1 x3 x4; RUN;
注意:一个完整的SAS程序必须以RUN语句结尾方能提交运行。
卫生统计教研室 彭斌 Slide 13
§3、编写SAS程序
相关文档
最新文档