SAS系统和数据分析PROCTRANSPOSE转置数据集.doc

上传人:大张伟 文档编号:6178710 上传时间:2020-09-18 格式:DOC 页数:7 大小:112.50KB
返回 下载 相关 举报
SAS系统和数据分析PROCTRANSPOSE转置数据集.doc_第1页
第1页 / 共7页
SAS系统和数据分析PROCTRANSPOSE转置数据集.doc_第2页
第2页 / 共7页
SAS系统和数据分析PROCTRANSPOSE转置数据集.doc_第3页
第3页 / 共7页
SAS系统和数据分析PROCTRANSPOSE转置数据集.doc_第4页
第4页 / 共7页
SAS系统和数据分析PROCTRANSPOSE转置数据集.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《SAS系统和数据分析PROCTRANSPOSE转置数据集.doc》由会员分享,可在线阅读,更多相关《SAS系统和数据分析PROCTRANSPOSE转置数据集.doc(7页珍藏版)》请在三一文库上搜索。

1、第十三课 PROC TRANSPOSE转置数据集一、 转置数据集的概念在对数据库的操作中,有时需要把数据库的行和列进行交换,也可称转置。SAS系统中TRANSPOSE过程能完成对SAS数据集的转置,即把观测(行)变为变量(列),变量变为观测。该过程从读入的一个数据集中创建一个新的数据集。新数据集中包含三类变量:l 一是由输入数据集中的观测转置后创建的新变量,又称转置变量,如_NAME_、COL1、COL2、COL3l 二是从输入数据集中拷贝过来的变量,使用COPY语句定义这个变量,新数据集中COPY过来的变量与输入数据集中的变量具有相同的名字和值l 三是为了识别新数据集中每条观测的来源用ID语

2、句定义的变量值作为新数据集创建的新变量二、 使用PROC TRANSPOSE过程转置数据集1. 用于TRANSPOSE过程的常用语句Proc Transpose ;Var 变量列表 ;Id 变量 ;Copy 变量列表 ;Run ;2. 转置CLASS数据集例如,在CLASS数据集中有变量NAME、TEST1、TEST2和TEST3,是按每个学生各课程成绩作为一条观测来组织的,现在我们要创建一个按每门课程各个学生的考试成绩作为一条观测的新数据集NEWCLASS。程序如下:Proc Transpose Data=CLASS Out=NEWCLASS ;Var TEST1 TEST2 TEST3 ;

3、Run ;转置生成的新数据集NEWCLASS的结果如图13.1所示。3. 设定新数据集中的转置变量名图13.1 由CLASS转置生成的新数据集NEWCLASS新数据集中的转置变量名是可以由用户自己设定的。l 通过PROC TRANSPOSE语句的选项NAME=COURSE,修改了省缺的新变量名_NAME_为COURSEl 还可以通过选项PREFIX=NO,修改了省缺的新变量名COL1、COL2、COL3、COL4、COL5为NO1、NO2、NO3、NO4、NO5l 如果新变量名COL1、COL2、COL3、COL4、COL5想用输入数据集CLASS中NAME变量中的对应值来替代,使用ID命令定

4、义NAME即可。这样命名新变量的优点是通过新变量名就可以很容易地识别原数据集中的观察行修改程序如下:Proc Transpose Data=CLASS Out=NEWCLASS Name=COURSE ;Var TEST1 TEST2 TEST3 ;Id Name ;Run ;转置生成的新数据集NEWCLASS的结果如图13.2所示。图13.2 使用ID语句转置生成的新数据集NEWCLASS第十四课 另外,还可以在PROC TRANSPOSE过程中使用COPY语句,在语句中指定输入数据集的某一个(或某几个)变量,将直接把输入数据集中指定变量那一列拷贝到新数据集也成为一列。当然,这样操作常会产生

5、输出数据集的行和列数不匹配,用缺失值填满。使用FSVIEW过程编辑数据集我们前面主要用SAS的程序方法来编辑SAS数据集。实际上,很多用户习惯使用SAS/FSP软件的FSVIEW过程来编辑SAS数据集,这是一种交互式菜单编辑方式,非常方便。例如,在PROGRAM EDITOR 窗口中输入的程序如下:Proc fsview data=study.survey ;Run ;程序提交后,进入FSVIEW窗口。用户仍然可以在命令框中键入命令来编辑,如键入DROP命令去掉不需要显示的变量(投影操作)、WHERE命令获得子集(选择操作)及WHERE ALSO命令获得子集的子集。FSVIEW过程与FSEDI

6、T过程相比,FSVIEW过程更方便,是用户最常用的输入和编辑SAS数据集的过程。因为FSVIEW在每一屏显示尽可能多的观测,是一种屏编辑;而FSEDIT在每一屏只显示一条观测,是一种行编辑。我们在这里以编辑数据集STUDY.SURVEY.DATA为例,简单介绍几种最常用的编辑操作。一、 选择Edit/Update/Record命令编辑记录如果选择了Edit/Update/Memer命令,则按数据集的一个个数据项进行编辑,每按一个Enter编辑光标跳到下一个数据项。如果选择了Edit/Update/Record命令,则按数据集的一条条记录进行编辑,每按一个Enter编辑光标跳到下一条记录。如图1

7、4.3所示是FSVIEW屏编辑窗口。图14.3 FSVIEW屏编辑窗口1. 修改指定记录进入按记录编辑状态后,只要单击一下所要编辑记录的行中任意位置,就会出现高反差的编辑条,移动左右光标到行中某处即可修改。要注意的是,窗口中显示的是数据集的输出格式,我们在输入或修改时,一定要按输入格式进行输入,否则可能发生错误。2. 删除指定记录按上下光标或Page Up/Page Down键可上下移动编辑光标,移到指定行后再按Enter键,也会出现高反差的编辑条,只有在出现编辑条时再按工具栏上的Delete按钮,才能删除此记录行。另外一种方法是,选择Edit/Delete命令后,再输入需要删除记录的OBS编

8、号。需要注意,OBS编号是记录输入的顺序号,而不是当前记录的逻辑顺序编号。记录输入的顺序号可能不连续,原因是断缺号码的输入记录已经被删除了。3. 新增一条记录如果需要新增记录,选择Edit/Autoadd命令,将新增一条空白记录,然后在空白记录上输入,按Enter键将继续新增空白记录。Edit/Autoadd是一个开关命令,再次选择此命令将关掉新增记录状态。4. 选择View/Arrange variables/Drop命令去掉变量的显示如果要去掉不需要显示的变量,例如AGE变量,选择View/Arrange variables/Drop命令后将出现如图14.4所示的输入框,空白框中输入数据集

9、变量名AGE,单击OK即可。图14.4 去掉AGE变量二、 选择View/Rename命令更改变量的名称如果要更改变量的名称,例如将NAME变量名更改为ID_NAME。选择View/Rename命令后将出现见图14.5所示输入框,输入被改的变量名NAME和改为的变量名ID_NAME。单击OK改名任务完成。图14.5 更改NAME变量名为ID_NAME三、 选择View/Assign formats/Format命令重新定义变量的输出格式STUDY.SURVEY数据集在初始创建时,我们只考虑了输入格式,现在在屏幕的窗口中显示的数据格式是一种系统默认的输出格式,可能不符合用户的要求,例如BDATE

10、出生年日期变量,显示的是SAS系统内部的日期存储值,我们将它改成MMDDYY8.日期输出格式。选择View/Assign formats/Format命令后将出现如图14.6所示输入框,在Enter name of format输入框中输入输出格式MMDDYY8.,在Enter name of variable(s) to format输入框中输入需改变输出格式的变量名BDATE。单击OK修改完成。图14.6 更改BDATE变量的输出格式四、 选择Locals/Define formula命令新增显示变量假设我们要对STUDY.SURVEY数据集新增一个TAX显示变量,它的值可由本条观测的其他

11、字段变量中的值经过一定的运算求得,例如TAX=INCOME*10%。选择Locals/Define formula命令后就会出现如图14.7所示的定义新变量的窗口,在Name中输入新变量TAX回车,在Enter the formula below的下面立即出现TAX=,在Type中有数字NUMERIC和字符CHARACTER两个选项,我们选择数字型变量,定义数据输出格式为9.2,最后输入变量TAX的赋值公式为INCOME*0.1。单击OK完成。今后新增一条记录输入时,只要在INCOME变量中输入数值,TAX变量就会自动出现计算值。要特别注意的是,去掉已有变量的显示(AGE)和新增显示变量(TAX)都是指在目前的窗口显示状态,如果我们选择File/End命令退出FSVIEW后,再次进入,TAX变量并不存在,而AGE变量却显示。确是要在数据集中新增TAX变量,应选择File/Save as/Save data set as命令保存退出。图14.7 新增一个TAX数字变量,可由表达式赋值

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1