收藏 分享(赏)

spss使用方法.docx

上传人:tkhy51908 文档编号:6782612 上传时间:2019-04-22 格式:DOCX 页数:13 大小:32.06KB
下载 相关 举报
spss使用方法.docx_第1页
第1页 / 共13页
spss使用方法.docx_第2页
第2页 / 共13页
spss使用方法.docx_第3页
第3页 / 共13页
spss使用方法.docx_第4页
第4页 / 共13页
spss使用方法.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、SAS 8.2 的界面中间是三个并排(或层叠)的窗口,那个叫做 Program Editor的窗口(窗口标签为 Editor)就是用来输入 SAS 语句的,编程操作的所有内容都是在该窗口内完成的。 (一)数据集(dataset)和库 统计学的操作都是针对数据的,SAS 中容纳数据的文件称为数据集,数据集又包含在不同的库(暂且理解为数据库吧)中。SAS 中的库分为永久性和临时性两种。顾名思义,存在于永久库中的数据集是永久存在的(只要你不去删除它),临时库中的数据集则在你退出 SAS 后自动被删除。至于 SAS 中库的概念,最简单的理解就是一个目录,一个存放数据集的目录。 数据集的结构完全等同于我

2、们一般所理解的数据表,由字段和记录所构成,在统计学中我们习惯将字段称为变量,在后面的内容中字段和变量我们就理解为同一种东西吧!建立数据集的方法很多,编程操作中有专门的数据读入方法来建立数据集,但需要将数据现场录入,费时费力。如果数据量大,我劝各位还是先以其它方法将数据集建好,否则程序语句的绝大部分会浪费在数据的输入上。 (二)SAS 程序概述 和其它计算机语言一样,SAS 语言(称为 SCL 语言, SAS Component Language)也有其专有的词汇(即关键字)和语法。关键字、名字、特殊字符和运算符等按照语法规则排列组成 SAS 语句,而执行完整功能的若干个 SAS语句就构成了 S

3、AS 程序。 SAS 程序包括多个步骤和一些控制语句,一般情况下均包括数据步和过程步,一个或多个、数据步或过程步,它们之间任何形式的组合均可成为一段 SAS 程序,只要能完成一个完整的功能。通常情况下 SAS 程序还包括一些全程语句,用以控制贯穿整个 SAS 程序的某些选项、变量或程序运行的环境。 SAS 程序的语句一般以关键字开始,以一个分号结束,一条语句可占多行(SAS 每看到一个分号,就将其以前、上一个分号以后的所有东东当作一条语句来处理,而不管他们处在多少个不同的行中)。SAS 语句对字母的大小写不敏感,你可以根据个人习惯决定字母的大写或小写。 1. 库名(库标记)的定义 为了保存宝贵

4、的数据和方便操作起见,我习惯于指定自己的库名及其路径(目录),因为 SAS 系统中已有的永久库(SASUSER )无论库名还是其对应的路径都太过繁琐,使用太不方便。程序中用到的数据,都可以永久的保存于该路径下,保证以后可以重复使用。指定库名的语句为全程语句,其格式如下: Libname 库名 路径; 例如我们指定的库名为“a”,路径为:“e:data”,SAS 语句如下: libname a e:data; 2. 数据步 SAS 的数据步以 data 语句开始,用于创建和处理数据集。Data 语句以关键字“data”开始,格式如下: data 数据集名 ; 例如:data a.case; 将创

5、建在库 a 中名为 case 的 SAS 数据集,语句执行后你可在与库 a 对应的目录下看到刚刚建立的数据集文件 case。 Data 语句所指定的数据集,一般都是以 “库名.数据集名 ”的格式出现的,也可以单独的“数据集名” 出现,此时的数据集系统默认为是临时库中的数据集,退出系统后将会被删除。 data 语句有两个重要的功能,标志数据步的开始和命名将要创建的 SAS 数据集。 除 data 语句外,数据步一般情况下还包括 infile 语句、input 语句以及datalines 语句等。在不同的数据输入方式下对于它们的使用方式也不一样。 SAS 程序有两种常见的数据输入方式,即从外部文件

6、读入和直接输入两种方式。(1)外部文件读入方式 数据若已经包含在某个外部文件(文本文件或数据文件)中,可用此方法输入数据到数据集文件中。 在以上介绍的 data 语句后,写入以下语句: infile 外部文件的所在位置及名称 选项; input 变量名 1 变量名 2 变量名 n; infile 语句用于从外部文件读入数据,必须出现在 input 语句之前。它的功能是指定一个包含原始数据的外部文件。 input 语句用于向系统表明如何读入每一条数据记录。它的主要功能有:读入由语句指定的数据列,为相应的数据域定义变量名,确定变量的读入模式。 例如: libname a e:data; data

7、a.student; infile e:datastudent.txt; input name height weight; 以上程序将目录“e:data”下的文本文件“student.txt”中的数据输入数据集student 中,该数据集存放于目录“e:data”下。 (2)直接输入方式 数据量较少或操作者意志力坚强的情况下采用此种输入方式,在 data 语句之后写入如下语句: input 变量名 1 变量名 2 变量名 n; datalines;(在以前的版本下为 cards,新版本下两者可通用) (数据行) (数据行) (数据行) ; datalines 语句用于直接输入数据,标志着数据

8、块的开始。 注意:这里的数据行中数据之间以空格分隔,当然也可以其它东东如逗号等来分隔,这里大家先以空格来分隔好了。因为不同的分隔方式下 input 语句要采取相应的控制选项,这些我们以后再讨论,这里我们还是省省力气吧。另外数据行输完后不能像其它语句那样直接在后面加上分号,而要另起一行输入分号,这样 SAS 才认为这是在输入原始数据而不是在搞别的什么。 例如: libname a e:data; data a.student; input name $ height weight;(name 后面的$符号表示变量 name 为字符型变量)datalines; Linda 171 51 Mary

9、168 50 Selinna 169 49 ; 以上程序将直接建立数据集文件 student,该数据集文件存放于目录“e:data” 下。3. 过程步 SAS 程序的过程步表示一个处理过程,如排序、T 检验、方差分析等等。过程步以关键字 proc 开始,后面紧跟着过程名,用以区分不同的程序步,并以关键字 run 结束。 一般的格式如下: proc 过程名 选项列表; (其它语句); (其它语句); run; SAS 程序中涉及的过程多达数百种,实现统计功能时常用的过程也有数十种之多,现将最为常用的过程名称及其所能实现的功能列入下表(表 1.1),以便各位提前热热身。 表 1.1 常用的过程名称

10、及其功能 过程名 功 能 Sort 将指定的数据集按指定变量排序 Print 将数据集中的数据列表输出 tabulate 将数据按照指定的分类变量以表格的形式分类汇总 Means 对指定的数值变量进行简单的统计描述 Freq 对指定的分类变量进行简单的统计描述 Ttest 对指定的变量做 t 检验 Anova 对指定的变量做方差分析 npar1way 对指定的变量做非参数检验 Reg 对指定的变量做回归分析 Corr 对指定的变量做相关分析 Discrim 对指定的变量做判别分析 Cluster 对指定的变量做聚类分析 Chart 绘出低分辨率的统计图 4. 几个常用的重要过程 在进入一般统计

11、学功能实现的内容之前,有关数据预处理和执行重要公共功能的过程大家有必要预先掌握,这里选出几个常用的和重要的过程进行讨论。 (1)对 SAS 文件进行操作的 datasets 过程 datasets 过程是对数据文件进行管理操作的工具,利用它我们可以实现以下功能: 将 SAS 文件从一个库中拷入另一个库中; 对 SAS 文件进行重命名; 修复损坏的 SAS 文件; 删除 SAS 文件; 列出某一 SAS 库中所有的 SAS 文件; 列出一个 SAS 数据集的属性,如最后修改时间、数据是否压缩、数据是否索引等; 对 SAS 文件进行设置密码的操作; 向 SAS 数据集添加记录; 对 SAS 数据集

12、的属性以及数据集内变量的属性进行修改; 创建或删除 SAS 数据集的索引; 创建并管理 SAS 数据集的核查文件; 创建或删除 SAS 数据集的完整性规则。 datasets 过程的一般格式如下: proc datasets ; age 当前文件名 相关文件名列表; append base=数据集名 ; audit 文件名 ; initiate; change 旧文件名 1=新文件名 1 ; contents ; copy out=库标记 ; exclude 文件名 ;(该语句只能在 copy 语句后出现,不能和select 语句同时出现) select 文件名 ;(该语句只能在 copy 语

13、句后出现,不能和exclude 语句同时出现) delete 文件名 ; exchange 文件名 1=交换文件名 1 ; modify 文件名 ; ; repair 文件名 ; save 文件名 ; run; 是不是太繁琐了,我都有些不耐烦了。不过我还是得写,已经写了嘛!不忍心浪费掉,最起码可以用来充充数,扩大一下篇幅。至于各位,嫌烦的可以略过此部分,想用的时候再来温习也不迟。下面我就不厌其烦地向各位介绍一下各选项及各条语句的含义和用法。 proc datasets 语句后各选项的含义及用法见下表(表 1.2)。 表 1.2 proc datasets 语句后各选项的含义及用法 选项 含义及

14、用法 alter=转换保护密码 SAS 文件设置有转换操作密码时用以验证操作的合法性,密码正确时代码才会被执行 details/nodetails 控制有关 SAS 文件的详细信息显示与否,前者为显示,后者不显示,默认值为后者 force 此选项具有两个功能:(1)在过程步的语句存在错误时仍然强制程序的执行;(2)在 append 语句中,两个数据集的变量不完全相同时仍然强制 append 语句的执行。 gennum= 控制对衍生数据集的处理方式,等号后可为 all, hist, revert 或某一整数 kill 此选项表示删除待处理的库中的所有文件,应慎用 library=库标记 用以指定

15、所要处理的库 memtype=成员类型 指定处理所针对的库成员类型(文件类型),默认值为 all(所有类型) nolist 在日志文件中禁止对所处理文件目录的显示 nowarn 在语句中指定的文件不存在等情况下,禁止显示出错信息,强制程序继续执行 pw=操作密码 SAS 文件设置操作密码时验证操作的合法性(包括读、写保护以及转换保护的文件) read=读保护密码 SAS 文件设置读保护密码时验证操作的合法性 age 语句用于批量地重命名文件,按照当前文件和相关文件的排列顺序,依次将后一个文件名重命名给前一个文件,结果是最后一个文件被删除,当前文件名被废弃。 对此语句我所了解的就这么多,而且还是

16、通过试验得出的结论,但总感觉还是理解的不对,哪位若有高见还请不吝赐教。 append 语句执行向数据集添加记录的功能,选项“base=数据集名”用以指定要添加记录的数据集,“data= 数据集名”则指定所要添加的记录所在的数据集,此选项若省略则默认为当前数据集(最近一次操作的数据集)。 audit 语句用于对文件的核查,生成核查文件并对其进行管理;change 语句以新文件名替换旧文件名;contents 语句用于显示指定数据集或当前数据集的各种属性;copy 语句用于将当前库中相应的文件拷贝到指定的库中,选项“out=库标记”用来指定文件要拷贝到的目标库;delete 语句用于删除指定的文件

17、;exchange 语句的功能是将等号前后两个文件的文件名进行互换;modify 语句用于修改文件各方面的属性;repair 语句用于对指定的文件(受到过某种损坏)进行修复,使其恢复到可以使用的状态;save 语句的功能是将其指定的文件保留,当前库中的其他所有文件则被删除。 (2)对数据文件中记录进行排序的 sort 过程 sort 过程的功能是对指定数据集中的记录按照指定的变量进行排序。由于诸多过程有对数据集记录进行排序的需要,比如过程步中存在 by 语句(用以将数据文件分割为若干部分)的情况下,就需要按照 by 语句后的变量对数据先行排序,所以 sort 过程非常有用,而且非常常用。 so

18、rt 过程的一般格式如下: proc sort 选项列表; by 变量名 1 ; run; proc sort 语句后各选项含义及其用法见下表(表 1.3)。 表 1.3 proc sort 语句后各选项含义及其用法 选项 含义及用法 data=数据集名 用以指定 sort 过程所要处理的数据集,若省略则默认为最近建立或处理的数据集 datecopy 此选项指定在不改变文件创建日期和修改日期的条件下对文件进行排序操作 out=数据集名 将排序后文件以指定的文件名存储,原文件不进行任何修改,若无此选项则将原文件覆盖 sortseq=排序依据 指定对字符型变量排序时依据的标准 reverse/eq

19、uals/noequals 指定输出数据中的排序方式,三者分别表示将字符变量的次序翻转显示,在排序变量的各水平内部次序保持不变,在排序变量的各水平内部允许次序的改变 nodupkey/noduprecs 指定重复变量的消除方式,前者表示除去排序变量值重复的记录,后者表示除去所有变量值重复的记录 sortsize= 用以指定可用最大内存的大小,等号后为表示内存大小的数值及单位,比如10m force 用以强制执行重复排序(对已建立索引的文件排序)过程 tagsort 指定在临时文件中仅存储排序变量和记录编号,以减少对磁盘空间的使用 by 语句即用以指定排序所要依据的变量,变量可为数值型也可为字符

20、型,其后可指定多个变量,sort 过程在按照靠前的变量进行排序的情况下再按照靠后的变量进行排序。by 语句中每个变量前可用 descending/ascending 选项来指定按照其排序的方式(降序或升序),默认状态为升序。 (3)将数据文件输出显示的 print 过程 print 过程的功能是将 SAS 数据集的记录以一定的方式显示到输出设备(显示屏),可以显示其全部的变量或部分变量。利用此过程,你可以创建从简单列表到可进行数据汇总的各种报告的各种不同的表单。 print 过程的一般格式如下: proc print 选项列表; by 变量名 1 ; pageby 变量名; sumby 变量名

21、; id 变量名; sum 变量名; var 变量名; run; proc print 语句后可跟的选项含义及其用法见下表(表 1.4) 表 1.4 proc print 语句后选项含义及其用法 选项 含义及用法 contents=文本 用以指定 html 内容文件中指向输出的链接的标识文本,等号后可为任何文本 data=数据集名 指定所要处理的数据集,等号后为数据集文件名 double 指定在相邻的记录间插入一空行 n=字符串 在报告的末尾或 by 变量各水平分组的末尾显示显示记录的数目,并以等号后的字符串对其进行标识 noobs 禁止记录编号在报告中的显示 obs=列标题 用以指定记录编号

22、所在列的列标题 round 对未进行格式化的数值变量进行四舍五入,统一格式化为带两位小数的十进制数值 rows=page 规定页面格式,目前page 是此选项唯一可用的值,表示在每一页中只显示一条记录的一行变量值,即一行中显示尽可能多的记录数 width=列宽度 指定列的宽度,可取的值有full,minimum,uniform,uniformby等, heading=方向 取值可为 v(vertical )或 h(horizontal),表示列标题显示的方向(横向或纵向) label 指定以变量标识作为相应的列标题,否则以变量名作为列标题 split=字符 首先此选项指定以变量标识作为列标题,

23、以指定的字符作为列标题换行的标志 style=类型元素 指定报告中特定位置所要应用的类型元素(涉及很多内容,详细内容略) by 语句在所有过程中的用法都相同,即将数据集分割为若干小数据集分别进行处理。pageby 语句用来控制换页时变量的显示方式,对于其后所指定的变量,相同的值不会显示在不同的页中,该变量某一值的记录在一页的剩余部分显示不下时,则从该值的第一条记录开始换行显示。sumby 语句的作用和 pageby语句相似,只不过是将换页的动作换为求和,对指定变量的每一值计算 var 变量的总计值。id 语句的作用是用指定的变量值代替记录编号对每一条记录进行标识。sum 语句用于指定报告中要进行求和操作的变量, var 语句用于指定要在报告中显示的变量。 以上过程作用较为普遍,使用频率较高,有必要预先了解,以便于后面所讨论内容的顺利进行。 为节省篇幅,这里不进行实例演示。内容过于枯燥,可能的错误也难免,还请各位多多包涵。 SAS 程序操作的大概情况就草草的这样介绍一下吧,说得太多的话我怕各位没有耐心看下去。更多的内容我想还是留在实际的例子中来介绍,这样大家可以好好的切身体会一下,然后就会印象深刻,实际运用起来也就得心应手了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报