SAS系统和数据分析PROCTRANSPOSE转置数据集_第1页
SAS系统和数据分析PROCTRANSPOSE转置数据集_第2页
SAS系统和数据分析PROCTRANSPOSE转置数据集_第3页
SAS系统和数据分析PROCTRANSPOSE转置数据集_第4页
SAS系统和数据分析PROCTRANSPOSE转置数据集_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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显示变量,它的值可由本条观测的其他字段变量中的值经过一定的运算求得,例如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变量就会自动出现计算值。要特别注意的是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论