SAS_数据步和数据描述操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• CARDS 语句 用于直接输入数据,标志着数据块的开始。格式如下: CARDS; 数据块 ;
• INPUT 语句 用于向系统表明如何读入每一条记录。它的主要功能有: o 读入由语句指定的数据列。 o 为相应的数据域定义变量名。 o 确定变量的读入模式。
INPUT 语句的格式如下: INPUT 变量名 [变量类型 起止列数]...;
Run;
http://www.spss.net.cn/sas/
方括号里的语句均可以省略,在这时该过程按最通常的情况来处理,即: o 处理最新建立的 SAS 数据集。 o 处理所有的变量(或对一个计算过程来说处理全部数值变量)。 o 一次处理整个数据集而不是某个子集。
我们在第一章中用到的 PRINT 程序步就是采用的这种默认方式。 但有时我们的要求超出了默认方式所提供的范围,这时就要动用方括号里的秘密武器了。 o DATA 参数 指明所需处理的数据集名,请注意在这里它是一个参数而不是语句。 o VAR 语句 如果只想分析某一个或几个特定的变量,则可用 VAR 语句指定它们。 例如只想显示变量 x 的列表,则 PRINT 过程如下:
Where x>50;
如果条件变为 x、y 两个变量的值都要大于 50,则 where 语句 改为:
导入的操作完全是对话式的,界面友好,简便实用。以下简单叙述导入的步骤,假如例 1.1 的数 据输成一个 dBASEIII 数据库文件 temp.dbf, 已经存放在"c:\user"下,要导入成数据集 work.li1_1。选择 FILE 菜单上的 import,弹出一个对话框,按照向导的提示进行下去。
Proc print ; Var x;
Run;
如果想显示 x 和 y 两个变量,则将 VAR 语句改为如下形式即可:
ห้องสมุดไป่ตู้var x y;
当然,也可以将 VAR 语句删除,结果相同。 o Where 语句 如果你想处理的不是整个数据集而只是其中符合某种条件的子集, 那么 WHERE 语句将会非常有用,如上例中我们只想显示大于 50 的 x 变量的值, 则在 PRINT 过程中加入 where 语句如下:
Libname 库标记 ’文件夹位置’ 选项;
例如要指定目录“C:\USER”为库标记 A,可以在视窗中提交如下语句:
http://www.spss.net.cn/sas/
libname a ’c:\user’;
数据库可分为永久库和临时库两种。临时库只有1个,名为 WORK,它在每次启动 SAS 系统后自 动生成,关闭 SAS 时库中的数据集被自动删除;永久库可有多个,用户可以使用 Libname 语句指 定永久库的库标记,永久库中的所有文件都将被保留。但库标记仍是临时的,每次启动 SAS 系统 后都要重新指定。不过为了方便用户,SAS 在每次启动时都会自动指定两个库标记:
程序步名
功能
SORT
将指定的数据集按指定变量排序
PRINT
将数据集中的数据列表输出
MEANS 对指定的数值变量进行简单的统计描述
FREQ
对指定的分类变量进行简单的统计描述
TTEST
对指定的变量做 t 检验
ANOVA 对指定的变量做方差分析
NPAR1WAY 对指定的变量做非参数检验
REG
对指定的变量做回归分析
Submit 命令和 run 语句有什么区别?这是初学者最爱问的一个问题,也同样是一个难以回 答的问题。简单地讲,run 是程序语句,可在程序中多次出现,它表示前面的程序段已经全部写 完,可以作为一个或几个整体提交运行了,而 Submit 则是 SAS 命令,只在最后程序运行的时候 发出,表示将程序正式提交运行。如果你还不明白,那么我还是来给你打个比方,run 语句是你 对 SAS 说“我想让您做的就是这些了”,而 Submit 命令就是对 SAS 说“现在开始为我做这些事, 好吗”,明白了吗?
http://www.spss.net.cn/sas/
sas 教程:第三章 SAS 程序初步
作者:佚名 教程来源:本站原创 点击数: 768 更新时间:2007-10-30
从本质上讲,SAS 是一种完善的第四代计算机语言。因此要真正掌握它,我们仍然要抛开其华丽 的外表,从学习它的核心――SAS 程序开始。
好的,计算机语言就是我们和计算机对话时所用的语言。和以上人类对话的例子相对照,“我有 这样一些数据”对应 SAS 程序中的数据步;而“我想做这样一些统计处理”对应 SAS 程序中的程 序步;最后的那一句哀求“您能帮我吗”则对应了 Submit 命令。在默认情况下,运行结果或者 出错信息将自动给出(当然你也可以强制不让它输出)。此外,还有一些系统环境控制语句,如 Libname、title 等。SAS 程序就是由一个或多个数据步和/或程序步加上一些乱七八糟的环境控 制语句组成。在本章中,我们将首先学习 SAS 对数据的管理方式,然后会了解到什么是数据步和 程序步,最后则介绍一下 SAS 语言中结构化语句的语法。
如果你对这段叙述无法理解,请去掉两个@@,重新运行一遍程序,看看 LOG 视窗中的提示都 有些什么变化。
【外部文件读入方式】
如果刚才的数据已经事先输好,在硬盘上的“C:\USER”文件夹内存为 temp.dat 文件,该文件内 容如下(纯文本):
34 56 78 90 35 67 89 10 23 65 77 45
http://www.spss.net.cn/sas/
为什么程序的最后都要加一句 run?这个问题还不太好解释,每一个程序应至少在最后有 一个 run 语句,表明前面的所有语句可以提交运行了,如果没有这一句,SAS 会以为你后面还有 语句要输入,从而将一些非立即执行的语句保留在编译缓冲区中,等待后续命令发出后一起执行, 这有时会把事情弄得很糟。出于减少麻烦的需要,建议大家养成在每一个数据步或程序步后都写 上一句 run 的习惯。
每一个数据集都有一个两级名,第一级是库标记,第二级是数据集名,中间用“.”隔开,在程 序中通过指定两级名来识别文件。文件两级名的一般形式如下:
库标记.数据集名
如在 a 库中的数据集 abc 可以这样来引用:a.abc 。
§3.2 SAS 程序的数据步
3.2.1 预备知识
SAS 程序的语句从上一个语句结束处开始,以一个分号结束,可占多行。
1. 选择导入的数据格式,从下拉式菜单上选择 DBF 格式,单击 NEXT 按钮。
2. 给出数据文件的位置和文件名,在对话框中键入 C:\USER\temp.DBF,或点 BROWSE 直接从上 面选择文件,选好后单击 NEXT 按钮。
3. 选择导入的目的地,即指定要创建的数据集的名字和存放的数据库名,先在左面的对话框选 择数据库名 WORK(临时库),在右面的对话框键入数据集的名字 li1_1,此名可任意起,少于 8 个字符,选择完后,单击 FINISH 按钮,就完成了此次操作。
则我们可以输入程序如下:
data temp;
命名将要建立的数据集为 work.temp
Infile ’c:\user\temp.dat’;指定外部数据文本文件名
input x y@@;
要输入的变量为 x、y,并且连续输入
Run;
数据步结束,以上语句可以执行了
数据步以 DATA 语句开始,那么在哪里结束?在遇到 run 语句或另一个数据步/程序步时就 结束了。
CORR
对指定的变量做相关分析
CHART 绘出低分辨率的统计图
PROC 就是程序(procedure)的缩写,而程序步的名字大都是其功能相对应的单词或词组 的缩写。
可见 SAS 的许多功能就是通过程序步来体现的,可如此多的种类也使我们难以总结出一个程序步 的通式来。不过仍可大致给出如下结构:
PROC 过程名 [DATA=数据集名] [选项]; 该过程的专用语句描述; [VAR 变量序列;] [WHERE 条件表达式...;] [BY 变量序列;]
http://www.spss.net.cn/sas/
这时已经建好了一个数据集,名为 WORK.li1_1,与我们前面建立的数据集完全一致。
§3.3 SAS 程序的程序步
通俗的讲,SAS 的程序步(有的书中也称过程或过程步)就是已经编好了的用于数据整理和统计 的计算机程序,你只需要调用它们就是了。程序步总是用一个 PROC 语句开始,后面紧跟着程序 步名,用以区分不同的程序步。以下是一些常用的程序步的名称及功能。
data temp;
命名将要建立的数据集为 work.temp
input x y@@;
要输入的变量为 x、y,并且连续输入
cards;
直接输入数据,数据块开始
34 56 78 90 35 67 89 10 23 65 77 45 数据块
;
数据块结束
变量y后面的@@表示数据可以在一行里连续读入,SAS 默认按列来分隔变量,可是这里只有两个 变量,输成两列数据太长,因此加上两个@@,SAS 见到这个符号,在按变量名依次读取完数据后, 不是跳到下一行,而是继续在该行读数据,直至本行结束或到达分号为止。
方括号表示其中的内容为可选,如果不输入,系统会以默认值代替。 3.2.3 数据的两种输入方式 上面我们学到了 INFILE 语句和 CARDS 语句,它们分别对应了两种数据输入的方式: 【直接输入方式】
http://www.spss.net.cn/sas/
实际上我们在第一章已经用到了直接输入方式,仍以那个程序为例,其中的数据步如下:
【读入其他格式的数据文件】
除了以上的两种通过数据步创建数据集的方法,SAS 还提供了一些其他的方式可以用来读入其他 格式的数据文件。6.11 版本以上的 SAS 可以利用 FILE 菜单上的 import 命令将其他格式的数据 文件导入 SAS 系统,创建 SAS 自己的数据集。可以导入的数据文件格式有:dBase 数据库,EXCEL 工作表,LOTUS 的数据库,纯文本的数据文件等。
• SASUSER:指明为永久库,即库中的数据集被保存起来,以便下次启动系统时使用。 • WORK:指明为临时库,对于开发和检查新程序非常有用,但每次 SAS 运行结束后 WORK
库中的所有文件将被删除。在程序中引用该库中的数据集可以省略库标记,即它被认为 是缺省的数据库。
SAS 数据库对应文件夹,如 SASUSER 对应 c:\sas\sasuser,WORK 对应 c:\sas\saswork, SAS 数据集则对应文件,每个数据集实际上是在硬盘的相应文件夹内产生一个文件名为数据集名,而 扩展名为.sd2 的文件,因此如果你成功的建立了一个数据集,理论上你就可以反复使用它直到 硬盘报废。
现在,让我们将 SAS 看成一个计算能力极强的统计学白痴(之所以这样说,是因为它计算能力虽 然极强,却只能帮你计算而不能提出自己的实验设计方案或研究方向来),而你有一个非常小的 关于数据分析的问题要请它帮忙。自然你要开口提出请求,无论措辞是委婉动听还是直截了当, 你的大实话无非是“喂,老兄,我有这样一些数据,我想做这样一种统计分析,您能帮我吗?”。 他迅速检查您的要求,在认为合情、合理并且合法后,就开始进行计算,并且在很短的时间内给 出计算结果。
3.2.2 数据步
以 DATA 语句开始,用于创建和处理数据集。其中最常用的语句有:
• DATA 语句 它的主要功能是:
http://www.spss.net.cn/sas/
o 标志数据步的开始。 o 命名将要创建的 SAS 数据集。
DATA 语句的一般形式如下: DATA 数据集名;
• INFILE 语句 用于从外部文件读入数据,必须出现在 INPUT 语句之前。它的主要功能是: o 确定一个包含原始数据的外部文本文件。 INFILE 语句的格式如下: INFILE ’外部文件的所在位置及名称’ 选项;
§3.1 SAS 系统对数据的管理
在 SAS 系统中只有 SAS 数据集才能被 SAS 过程直接调用,SAS 数据集的结构和 DBF 数据库完全相 同,因此无须多讲。而 SAS 数据集存储在被称为 SAS 数据库的文件集中,在 PC 系统中,SAS 数 据库与某一个文件夹相对应,我们要为每一个数据库指定一个库标记(库名)来识别该库,使用 Libname 命令可以指定库标记。它的一般格式如下:
相关文档
最新文档