1 / 20
文档名称:

ThelittleSASbook学习笔记第六章.docx

格式:docx   大小:820KB   页数:20页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ThelittleSASbook学习笔记第六章.docx

上传人:260933426 2017/9/10 文件大小:820 KB

下载得到文件列表

ThelittleSASbook学习笔记第六章.docx

相关文档

文档介绍

文档介绍:The little SAS book 学****笔记
第六章修改组合SAS数据集
使用SET语句修改数据集
SET语句可以增加新变量、创建子集、修改数据集。SET语句是一次一个变量地,将一个数据集放入数据步中予以分析。基本形式为:
DATA new-data-set;
SET data-set;
Data语句指定了新数据集名,set指定要读取的老数据集名。如果不想创建新的,则也可以在data中指定老数据集。
下面的代码创建了一个Friday的新数据集将sales数据集中的day属于Friday的观测值复制,并创建了新变量total:
例子有一份关于火车运汽车的数据,汽车主为了在高峰期节省时间,或者为了节省汽油,选择让火车运汽车的方法,变量为一天中发车的时间、火车上的汽车数、火车中的人数:
数据被读入一个永久数据集trains中,储存在MYSASLIB目录文件夹下:
由于每辆车的最大乘客数为6人,现在想知道一列火车上,平均每辆汽车的乘客数是多少,可以在数据中插入一列,但这不在原始数据中计算,而是在一个新数据集中计算:
结果如下:
使用set语句堆叠数据
运用set语句可以把一个数据集堆在另一个数据集上,适用于两个变量相同的两个数据集。
基本形式为:
DATA new-data-set;
SET data-set-1 data-set-n;
首先指定一个新的数据集,然后列出需要合并的旧数据集。
如果一个数据集包含了另一个数据集没有的变量,那么合并后,该变量下将会出现缺失值。
例子有如下两份南北数据,北方数据比南方多了一行变量(最后一行),其他变量均相同:
下面有三段代码,前两段将南方和北方的数据各输入数据集,并打印。第三段使用SET语句将南北方数据合并,并创建了新变量,AmountPaid:
输出结果如下:
使用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。
下面是输出结果:
一对一匹配合并数据集
合并数据集,首先,如果数据没有排序,使用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。
结果如下:
注意M315的销售记录缺失,因为sales data中没有关于其的记录。
一对多匹配合并数据
一对多合并是指一个数据集中的一个观测值可以与另一个数据集中的多个观测值匹配。
基本形式与一对一一样:
DATA new-data-set;
MERGE data-set-1 data-set-2;
BY variable-list;
注意数据集的顺序,一对多的一要放在前面。在进行合并之前,仍然要对两个数据集按照匹配变量进行排序。。
例子有一份关于鞋子打折的数据,其中训练鞋、跑步鞋、走路鞋的折扣各不同。第一份数据是关于鞋子的风格、类型、价格。第二份数据是关于每个类型鞋子的折扣:
下面的代码用多对一合并了两个数据:
结果如下:

当你想比较每一个观测值和一组变量的均值时