




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 SAS编程根底内容 SAS程序构造变量、常数、表达式和函数数据的输入数据的输出输入和输出的格数据及的操作变量的控制观测数据的管理条件语句与循环语句过程步的引见一、SAS程序的构造 SAS的程序由假设干个SAS语句Statements构成。 按构造和功能可以将SAS过程分为两个过程步。是数据步DataSteps用于数据集的产生、加工和整理。程序步ProcSteps用于数据的分析并在Output窗口输出结果。 一个SAS程序可以有一个数据步或一个程序步。也可以有一个数据步和多个程序步。也可以有多个数据步和程序步。1.SAS的语句根本规那么 SAS的语句普通由SAS的关键词开场,以英语的分号
2、;结尾,语句中还包括SAS的变量、常数、运算符函数或一些特殊的字符比如$。根本规那么: 语句可以在一行的任何地方开场; 一个语句可以分写为假设干行; 多个语句可以写在同一行; 语句中各项之间以空格隔开; 不区分大小写。 在SAS语句中的注释语句为: /*注释内容*/或*注释内容。 数据步以DATA 语句开头,其后可以包括多个SAS语句。DATA语句是用来建立SAS的数据集。该语句后的其它语句均是用来输入数据和对数据进展修正和编辑等。数据步的普通方式为: data 数据集名; 数据步语句; ; run;Run代表SAS的程序终了。一个程序可以有几个“run,也可以只用一个“run“。 DATA
3、D1; INPUT A B; CARDS; 3 5 7 9 ; RUN; 建立了一个叫建立了一个叫D1的数据的数据集,有变量集,有变量A和和B,分别有分别有两个个案。两个个案。 DATA D2; INPUT C D; CARDS; 13 15 17 19 21 23 ; RUN; 【例】建立以下样本的SAS数据集姓名:name性别:xb年龄:age身高:high体重:weigt【例】 频数数据的组织方式:居民储蓄问卷调查结果年龄年龄收入收入人数人数24900635180010372000930170011将此分组数据构造SAS的数据文件。data a;input x y f;cards;249
4、006351800 10372000 9301700 11;proc means;freq f;run;2.过程步 过程步要求SAS从系统中调出一个SAS过程,这个过程对应某一种统计分析方法,并对指定的数据集执行该过程,过程步以proc开头,指出调用的过程名和要分析的数据集。其后利用一些语句来指定调用该程序的各个参数。Data=数据集名是可以选择的,假设缺省运用最近的数据集。 Proc 过程名 data=数据集名; 过程步语句; 过程步语句; ; Run;【例】 proc print data=a; run;简单打印的过程语句。 proc means data=a; run;计算描画统计量的过
5、程。二、变量、常数、表达式和函数 1.变量 SAS的变量是用来表示统计数据的。在SAS中,每一列就是一个变量,列中的数据值就是变量值。 SAS变量的属性Attributes,包括称号name、类型type、长度length、输入格式informat、输出格式format以及标签label。变量属数字范围缺省值控制语句称号命名规那么无rename类型数值型和字符型数值型无长度数值型2-8个字节,字符型1-256个字节8个字节Length语句标签1-256个字节无Label语句SAS变量属性 2.常数 SAS常数用来表示固定的值,包括数字、字 符数和一些特特殊的符号。 数值型常数:例如1,2,0.
6、53,1.5E-5 字符串常数:例如SWUFE 日期时间型常数:在SAS中日期和时间均有特殊的储存方式。 date=10APR2021d;data a;date=10APR2021d;input x date12.;cards;10/APR/2021 ;proc print;FORMAT x WORDDATE.;FORMAT date WORDDATE.;run; SAS的日期是从的日期是从1960年年1月月1日起的整天数。计日起的整天数。计算算2021年国庆的日期值。您的生日的日期值。年国庆的日期值。您的生日的日期值。data a;input x;cards;10903;proc print
7、;FORMAT x date8.;run;3.表达式 表达式由运算符号和运算对象组成。执行后产生一个目的值。运算符号包括算术运算符号、比较运算符号、逻辑运算符号、函数和括号等。 【例】 假设我们有工人的年龄age和工龄gl两个变量,如今要计算工人的入厂年龄rc。Data a; Input age gl; rc=age-gl; Cards; 56 32 36 12 ; Proc print;Run; data a; Input age gl; rc=age-gl; old=sign(age55); cards; 56 32 36 12 57 26 32 6 ; proc print; run;运
8、算的符号与含义*乘方|衔接+正=等于-负=不等于非大于最大=大于等于*乘=小于等于/除&与+加|或-减 4.SAS的函数 SAS的功能非常强大和全面,这一点在函数上得到了极为充分的表达,SAS中共有25大类函数,功能涉及到文件管理、金融、数学计算、统计计算、字符串处置、货币转换等各个方面。因篇幅限制,这里无法将数百种函数一一解释,只列举出较为常用的函数。ABS(X)求求x的绝对值的绝对值MAX(X,Y,Z)求一串数中最大的一个,例如求一串数中最大的一个,例如MAX(1,2,3,4)=4。MIN(X,Y,Z)求一串数中最小的一个,例如求一串数中最小的一个,例如MIN(1,2,3,4)=1
9、。MOD(X,Y)求求X除以除以Y的余数,例如的余数,例如MOD(9,5)=4SIGN(X)计算计算X的符号,结果为的符号,结果为1,、-1或或0。SIGN(X) 称为符号函数,称为符号函数,假设假设 括号里面的括号里面的x是正的,那么得是正的,那么得1,括号里面,括号里面x是负的那么是负的那么得得-1,括号里面的,括号里面的x是零,那么得是零,那么得0。SQRT(X)求求X的平方根。的平方根。第一类第一类 算术函数算术函数DIM(X)求数组中的元素个数,求数组中的元素个数,X为数组名,为数组名,n为该为该数组的维数数组的维数DIM(X, n)求多维数组的某一维中的元素个数,求多维数组的某一维
10、中的元素个数,X为数为数组名,组名,n为指定的维数为指定的维数HBOUND(X)求数组的上界求数组的上界HBOUNDX,n求多维数组中的某一维的上界,求多维数组中的某一维的上界,X为数组名,为数组名,n为指定的维数为指定的维数LBOUND(X)求数组的下界求数组的下界LBOUNDX,n求多维数组中的某一维的下界,求多维数组中的某一维的下界,X为数组名,为数组名,n为指定的维数为指定的维数 SAS函数是SAS系统提供的子程序。 格式为: 函数名自变量1,自变量2, 函数名of 变量列data a;input x y;sum=sum(x,y);cards;1 2 3 4 5 6;run;三、数据输
11、入 1.数据源和数据步方式 在数据量不大时,普通可以在程序编辑器窗口将数据行和SAS程序写到一同,完成数据的输入。普通方式为:data 数据集名; input 变量名列; cards; 数据行 ; run; 其中,input语句用来读入数据,它根据数据行方式的不同采用不同的语句格式,cards语句可以用datalines语句,该语句的含义是提示SAS系统下面紧跟的是数据行。 Input语句有三种输入数据格式:列表输入列输入格式化输入 2.按列输入 对于严厉陈列好的规范数据,才采用按列输入。 input 变量名 起始列数; Input name $1-10 num 11-18;cards;zha
12、ng san 20051001Lisi 20052002;Run;3.列表输入 在Input语句中仅列出变量名;数据仅需用空格分割,不用列对齐。根本格式 Input 变量名 ;【例】 Input name$ sex$ age h w; 其中表示一个数据行只能读入一个观测, 表示一个数据行可以读入多个数据,按顺序读完。4.格式化输入 格式化输入:在Input 语句中,变量名后给出一个输入格式,输入格式用来阐明变量的数据类型和字段的宽度;在数据中,数据普通要求列对齐,不用用空格隔开。 例:字符格式:Input name $ 10. ; 数值格式:Input h 4.2 ; 日期格式:mmddyy1
13、0. date12.例:Data a;Input d mmddyy10. d2 date12. ;cards;10/19/05 19/Oct/2005; Input h 4.2 ;的含义是输入的数据是占4个有效数字,小数点两位。 Input d mmddyy10. d2 date12. ;输入的数据是两种日期数据格式。即从1960年1月1日开场计算的整天数。 data a;Input d mmddyy10. d2 date12.;cards;11/01/2021 11/jul/2021;run;proc print;run; MMDDYY8. 01232021格式读入日期格式读入日期值时,日期
14、值最长占值时,日期值最长占8列。如格式给出的长度列。如格式给出的长度缺乏,那么会出现数据截尾。缺乏,那么会出现数据截尾。DATE10. 格式格式是按是按ddmmmyy的格式读入数据的,最长可的格式读入数据的,最长可读入读入10列。列。 简化输入:如有简化输入:如有X1,X2.X10十个字符十个字符型量的值紧挨在一同,每个量长度为型量的值紧挨在一同,每个量长度为3, 那那么么 :INPUT (X1-X10) ($3.);四、数据输出1.输出数据到输出数据到SAS窗口窗口直接运用直接运用PUT语句,可以将数据输出到语句,可以将数据输出到SAS系统的系统的log窗口;窗口;SAS系统的系统的OUTP
15、UT窗口;窗口; 在在put语句前利用语句前利用file语句,标识名的语句,标识名的选择为:选择为:log和和print。假设标识为。假设标识为log,表示输出在日志窗口,假设标识为表示输出在日志窗口,假设标识为print,那么输出现真实输出窗口,此时那么输出现真实输出窗口,此时put语语句将结果打印到输出窗口。句将结果打印到输出窗口。data a;input x y z;file print;put x y z;cards;1 2 53 4 74 5 8;run;data a;input x y z;file log;put x y z;cards;1 2 53 4 74 5 8;run;2
16、.输出到外部文件 结合运用PUT和FILE语句,可以实现将数据输出到外部文件。其中,FILE语句用于定义要输出外部文件。其语句格式为: FILE 文件途径; 文件途径包括完好的途径和文件名。选项用来控制输出数据如何被写入到输出文件中。 put语句用来实现数据输出。data a;input x y z;file “c:sasdata.out;put x y z;cards;1 2 53 4 74 5 8;run; 在在SAS的子目录里有一个文本文件,扩展名为的子目录里有一个文本文件,扩展名为out。是三行数据。是三行数据 。将其读入:将其读入:data a2;infile c:SASdata.o
17、ut;input x y z;proc print data=a2;run;3.输出数据到SAS永久数据集libname study c:sasmydata; data study.a; input x y z; cards; 1 4 5 2 6 9 9 12 11 ;Run;读入SAS内部永久数据集libname studyc:sasmydata;proc print data=study.a;run;五、数据集的操作 1.SET语句 SET语句是数据集操作中的一个根本语句,用于从一个或多个数据集中读取观测数据,生成一个新的数据集。SET语句的根本格式为: SET 数据集名 ; 在SET语句
18、中,数据集可以有一个或多个。假设数据集名只需一个,那么直接从该数据集承继数据。假设数据集有多个,那么应该思索采用何种方式将这些数据集串联起来。 在SET语句中,每个数据集名后面的选项用来规定在读入该数据集时对变量或观测进展相关的操作,假设没有数据集名后面的选项,那么读入数据集中一切的变量和观测。选项与阐明选项阐明Keep变量名规定读入数据集时规定保管的变量。Drop变量名规定读入数据集时规定删除的变量。Rename 旧变量名新变量名对变量重新命名。Where表达式读入满足表达式的观测Firstobsn规定从数据集中的第n行开场读入观测数据Obsm规定从数据集中的第m行终了读入观测数据3.数据集
19、的串联纵向合并 1简单串联 简单串联就是将一切要合并的数据集简单叠放在一同。 data 新数据集名; set 数据集名1选择表达式 数据集名2 选择表达式 . . .; run; 可以附加选项来规定在读入该数据集时对变量和观测进展选择和删除。并包含一切的变量。假设某个数据集的没有此变量,那么以为是缺失值。DATA SCORE1; INPUT NUM S1-S3; CARDS; 1001 78 89 92 1002 87 92 97 1003 64 74 88 ; DATA TOT; SET SCORE1; TOTAL=SUM(OF S1-S3); PROC PRINT; RUN; data a
20、;input x y;cards;1 27 89 12;data b;input x;cards;34125678;data c;set a drop= y b;run;proc print data=c;run; 2排序串联 假设各个数据集串联后需求按某个变量进展排序,除了运用set语句,还要运用by语句。 data 新数据集名; set 数据集名1 数据集名2 . . .; by 变量名; run;4.数据集的并联横向合并 1.简单并接 数据集的并接是指将多个数据集横向合并起来,即新的数据集添加。 data a; merge 数据集名1 数据集名2 ; run; 假设不匹配会有缺失值。2匹
21、配并联 匹配并接是将两个或两个以上的数据集按照某个变量进展并接。为了进展匹配并接各个数据集都至少有一个一样的变量。 data a; merge 数据集名1 数据集名2 ; by 变量名; run;data a;input num$ x ;cards;01 1 02 203 7 04 805 9 06 12;data b;input num$ y;cards;01 3402 1203 5604 78;data r;merge a b;by num;proc print data=r;run; 七、变量的控制1. DROP 语句语句 格式格式: DROP 变量表变量表; DROP语句指明某些变量不
22、包括在建立语句指明某些变量不包括在建立的数据集中。但是这些变量可在该数据的数据集中。但是这些变量可在该数据步的一切编程语句中运用步的一切编程语句中运用 。在。在 DATA步步中,中,DROP语句位于任何地方所产生的语句位于任何地方所产生的效果都一样。效果都一样。DATA PARTS; INPUT NAME $ S1 S2; TOTAL=S1+S2 DROP S1 S2; CARDS; zhanglin 78 89 wangqiang 95 87 2. KEEP 语句语句格式格式: KEEP 变量表变量表;如:如:KEEP NAME AVG; KEEP语句阐明在正被建立的数据集中语句阐明在正被建
23、立的数据集中包括哪些变量。包括哪些变量。在在KEEP语句中不包括的变量仍适用于语句中不包括的变量仍适用于其它程序语句。其它程序语句。KEEP语句可出如今语句可出如今DATA步步的程序语句中的任何位置,它是非执行语句。的程序语句中的任何位置,它是非执行语句。KEEP语句的作用与语句的作用与DROP语句正相反。语句正相反。在同一在同一DATA步中,不要同时运用步中,不要同时运用KEEP语句语句和和DROP语句。语句。 3. LENGTH 语句语句 当一个字符型变量长度超越或不用缺省当一个字符型变量长度超越或不用缺省值时,可用该语句指出变量的长度。值时,可用该语句指出变量的长度。 如如: DATA
24、A; LENGTH NAME $ 13; INPUT NAME SEX $ H W; CARDS; ZhangZhihui F 1.70 52 ZhaoChangtai M 1.73 55 ; 由于由于NAME变量已在变量已在LENGTH语句中定语句中定义为字符型量义为字符型量,故故INPUT语句中可不再用语句中可不再用$号作定义。号作定义。 4. LABEL 语句语句变量名不许超越变量名不许超越8个字符长。运用个字符长。运用LABEL语语句给变量一个标志,标志长可达句给变量一个标志,标志长可达40个字符。个字符。 它它与变量值同时存于数据集中,与变量值同时存于数据集中, 它可以被许多它可以被
25、许多SAS过程打印出来。过程打印出来。 DATA D; INPUT NUM $ SEX $ H W; LABEL H=HEIGHT W=WEIGHT; CARDS; 101 M 1.72 61 102 F 1.68 52 ; PROC PRINT LABEL; 留意留意: PRINT过程的过程的PROC PRINT语句中应加语句中应加LABEL选择项。选择项。指定变量的输出格式。指定变量的输出格式。 对于日期时间型变量必需指定其格式。如对于日期时间型变量必需指定其格式。如: DATA EMPLO; INPUT NAME $ T DATE7.; FORMAT T WORDDATE.; CARDS
26、; ZHONGLI 15JAN84 LIUWEI 03MAR85; PROC PRINT;Run;FORMAT语句把语句把SAS输出格式输出格式WORDDATE. 变量变量T联联络起来。络起来。 5. FORMAT 语句语句data time;x=date();format x yymmdd8.2;put x=;run;给出今天的日期。 timepart函数函数 计算日期值的时间部计算日期值的时间部分。分。data time;input x datetime18.;format x datetime18.;cards;29nov2021:09:25:0003dec2021:10:23:50;p
27、roc print data=time;run;data time2;set time;y=timepart(x);format y time8.;run;proc print data=time2;run;6. MISSING 语句语句格式格式: MISSING values;MISSING语句阐明:在录入的数据中的某语句阐明:在录入的数据中的某些值代表数值型数据的缺项值。些值代表数值型数据的缺项值。 例如,假设字母例如,假设字母 “A代表在调查时家中无人,代表在调查时家中无人, 字母字母“R代表回绝回答。代表回绝回答。 DATA SURV; MISSING A R; INPUT ID ANSWER ; CARDS; 1001 2 1002 R 1003 1 1004 A 1005 2 ; MISSING语句规定,在录入的数据行中,值语句规定,在录入的数据行中,值 A和和R 被以为是特殊的缺项值,被以为是特殊的缺项值, 而不是无效的数而不是无效的数值型数据值。值型数据值。 7.注释语句注释语句 在语句开头加一个星号,就表示该语在语句开头加一个星号,就表示该语句的内容是注释信息而不予执行。句的内容是注释信息而不予执行。如:如: *-example-; data;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年基础入门考试题及答案
- 2025年5G网络的物联网连接性能优化
- 新型高强钢-碳纤维复合剪式支撑在极端荷载下的界面失效机理探索
- 新型纳米涂层在重质油分离塔冷凝器中的应用边界分析
- 新型环保型冷却介质对成型产品纯度与设备寿命的长期作用评估
- 数据驱动消毒液使用场景精准化与过度消毒悖论
- 数字化生产模式对传统刻字工艺传承的冲击与机遇
- 政策合规压力下跨国剪扩工具的多模态认证困境
- 拆装工具在极端工况下的可靠性强化设计标准重构
- 成本敏感型市场下阀片材料梯度设计与轻量化结构的创新实践
- 《城市轨道交通车辆段(停车场)物业服务标准》
- 初级招标采购从业人员《招标采购法律法规》近年考试真题试题库(含答案)
- 班本课程的实施与开展培训
- 旅馆消防安全灭火疏散应急预案模版(3篇)
- 汽车吊维保记录
- 教学评一体化理念
- 人音版七年级音乐上册教案全册
- 机房网络改造升级方案
- ECE-R90-欧盟第3版-中文版(R090r3e-01)
- 2023学年武汉市武昌区九年级语文上学期期中检测试卷附答案
- 函数的单调性与最值课件高三数学一轮复习
评论
0/150
提交评论