SAS数据管理(转置).ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS数据管理(转置)

第15章 数据管理 SAS系统提供的过程按其用途可分为四大类: 数据管理; 基础统计; 数据呈现; 数据访问。 ? 和任何一种编程语言一样,SAS 系统有一些数据管理过程,用于实现常用的中间操作或数据转换。 本章将介绍的数据管理过程: 数据集排序; 数据集转置; 改变输出地点; 添加观测; 数据库复制。 数据集排序 利用SAS的排序过程可以对数据集中的观测重新排序。 SAS许多和BY配合使用的语句,如对数据集进行合并的语句或更新语句等,使用前必须先对BY变量进行排序。 排序过程句法 PROC SORT option(s) collating-sequence-option; BY DESCENDING variable-1 ...DESCENDING variable-n; PROC SORT语句 其中: 选项FORCE强行实施多余排序。排序并替换原来加索引的或取子集的数据集,即没有规定OUT=选项时,如果没有规定FORCE,就不能对有索引的数据集进行排序和替换。 ? 没有规定OUT=选项时必须使用FORCE的选项有: OBS=系统选项; FIRSTOBS=系统选项; DATA=数据集中的数据集选项WHERS=; PROC SORT 步用WHERE语句。 BY语句 BY DESCENDINGvariable-1…DESCENDINGvariable-n; PROC SORT中必须使用BY语句,BY语句中可以规定任意多个变量。 BY语句中规定多个变量时,SORT过程首先按第一个变量排序,然后是第二个变量等。 BY语句中可以规定的选项: DESCENDING—对变量按下降次序排序。 应用举例 例15.1 按多变量排序。 data a; set ResDat.Idx000001; year=year(date); qtr=qtr(date); month=month(date); proc sort data=a out=b; by year qtr month; run; 例中,对上证数据Idx000001按年、季和月排序。 例15.2 按单变量降序排列。 proc sort data= ResDat.a600001 out=a; by descending clpr; proc print data=a (obs=3) noobs; var date clpr; run; 例中,按收盘价CLPR的降序排列。 数据集转置 转置就是把数据集的观测变为变量,变量变为观测。利用SAS的转置过程可以对数据集进行转置。 转置过程句法 语句说明: PROC TRANSPOSE 语句 PROC TRANSPOSE option-list; 选项说明: VAR语句和ID语句 VAR语句 VAR variable-list; VAR语句列出要转置的变量。 没有VAR语句时,则没有列在其它语句里的所有数值变量被转置。 ID语句 ID variable; ID语句规定输入数据集中一个变量。ID变量的值为转置后数据集的变量名。在没有选项LET时,ID变量的值在数据集中只能出现一次,使用BY语句,BY组内只包含最后的ID值。 应用举例 例15.4 ID变量的值为转置后数据集的变量名。 proc transpose data=ResDat.class out=a let; id name; proc print; run; 例中,原数据集CLASS中变量NAME的值为转置后数据集A的变量名,对所有数值变量转置。数据集A中还有一变量_NAME_. 例15.5 BY组内最后一个ID值的观测被转置。 proc transpose data=ResDat.class out=a let; id sex; proc print; run; 结果显示: proc transpose data=ResDat.class out=a let; id sex; by sex; proc print; run; 结果显示: 例15.8 对每个BY组转置。 options nodate pageno=1 linesize=80 pagesize=40; proc transpose data=ResDat.fishdata out=fishlength(rename=(col1=Measurement)); var length1-length4; by location date; run; proc print data=fishlength noobs; tit

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档