the little sas book第六章.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
the little sas book第六章

The little SAS book 学习笔记 第六章 修改组合SAS数据集 6.1 使用SET语句修改数据集 SET语句可以增加新变量、创建子集、修改数据集。SET语句是一次一个变量地,将一个数据集放入数据步中予以分析。基本形式为: DATA new-data-set; SET data-set; Data语句指定了新数据集名,set指定要读取的老数据集名。如果不想创建新的,则也可以在data中指定老数据集。 下面的代码创建了一个Friday的新数据集将sales数据集中的day属于Friday的观测值复制,并创建了新变量total: 例子 有一份关于火车运汽车的数据,汽车主为了在高峰期节省时间,或者为了节省汽油,选择让火车运汽车的方法,变量为一天中发车的时间、火车上的汽车数、火车中的人数: 数据被读入一个永久数据集trains中,储存在MYSASLIB目录文件夹下: 由于每辆车的最大乘客数为6人,现在想知道一列火车上,平均每两汽车的乘客数是多少,可以在数据中插入一列,但这不在原始数据中计算,而是在一个新数据集中计算: 结果如下: 6.2 使用set语句堆叠数据 运用set语句可以把一个数据集堆在另一个数据集上,适用于两个变量相同的两个数据集。 基本形式为: DATA new-data-set; SET data-set-1 data-set-n; 首先指定一个新的数据集,然后列出需要合并的旧数据集。 如果一个数据集包含了另一个数据集没有的变量,那么合并后,该变量下将会出现缺失值。 例子 有如下两份南北数据,北方数据比南方多了一行变量(最后一行),其他变量均相同: 下面有三段代码,前两段将南方和北方的数据各输入数据集,并打印。第三段使用SET语句将南北方数据合并,并创建了新变量,AmountPaid: 输出结果如下: 6.3 使用SET语句插入数据集 前面的堆叠数据,可能把数据顺序打乱,当然可以再用proc sort再将数据排序。但这可能效率低下。在set语句中使用by语句可以高效率的将数据按顺序合并,基本形式为; DATA new-data-set; SET data-set-1 data-set-n; BY variable-list; BY语句中,可以指定一个或多个变量,让SAS进行排序。 注意,在合并几个数据之前,每个数据都要用BY进行排序,如果没有,则要用proc sort完成。 例子 仍然是刚才的例子: 注意南方的数据已经按照pass number(第二个变量)进行了排序,北方的没有。下面还是三段代码,第一段对南方的数据输入,打印。第二段对北方的数据输入、排序、打印。第三段进行合并,并创建新变量INTERLEAVE。 下面是输出结果: 6.4 一对一匹配合并数据集 合并数据集,首先,如果数据没有排序,使用sort过程按照匹配变量排序。之后,在data语句中对新SAS数据集命名,再使用merge语句列出要合并的数据集名。使用BY语句说明共同变量。 DATA new-data-set; MERGE data-set-1 data-set-2; BY variable-list; 注意,如果两个数据集有重叠的变量——除了BY变量,那么第二个数据集中的此变量会覆盖第一个数据集中的。 例子 有一个巧克力店记录了每天所卖巧克力的类型以及数量,第一个文件sales data记录了所卖的巧克力代码和数量,第二个记录了巧克力代码、所代表的类型、描述。 下面有三段代码,前两段读取sales数据,description数据。后者已经对codenum变量进行排序,前者需要用proc sort进行排序。否则会出现错误的信息:ERROR:BY variables are not properly sorted 结果如下: 注意K086的销售记录缺失,因为sales data中 没有关于其的记录。 6.5 一对多匹配合并数据 一对多合并是指一个数据集中的一个观测值可以与另一个数据集中的多个观测值匹配。 基本形式与一对一一样: DATA new-data-set; MERGE data-set-1 data-set-2; BY variable-list; 注意数据集的顺序,一对多的一要放在前面。在进行合并之前,仍然要对两个数据集按照匹配变量进行排序。其他注意与6.4差不多。 例子 有一份关于鞋子打折的数据,其中训练鞋、跑步鞋、走路鞋的折扣各不同。第一份数据是关于鞋子的风格、类型、价格。第二份数据是关于每个类型鞋子的折扣: 下面的代码用多对一合并了两个数据: 结果如下: 6.6合并统计量与原始数据 当你想比较每一个观测值和一组变量的均值时,可以先使用proc means计算统计量,并

文档评论(0)

qiaogao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档