3.2 横向合并数据集
横向合并即是变量的合并,按照记录号的顺序或者某个关键变量的数值将不同的数据集中的不同变量合并在一起组成新的数据集,新数据集中的变量数是所有源数据集中不重复变量的总和。横行合并分为一对一合并和匹配合并。
(1)一对一合并
一对一合并是按照记录号的顺序进行合并,也就是所有源数据集中的第一个记录组合起来作为新数据集中的第一条记录,依次进行合并,一直到记录数最多的那个数据集结束。不同的变量自然是组合到一起了,相同的变量则去最后一个数据集中的值。
例如:
DATA1
DATA2
COMBINED
VarX
VarY
VarX
VarY
X1
Y1
X1
Y1
X2
Y2
X2
Y2
X3
+
Y3
=
X3
Y3
X4
Y4
X4
Y4
X5
Y5
X5
Y5
data combined;
merge data1 data2;
run;
横向合并有时候很容易跟纵向连接混淆,这里也是同样的,讲一讲合并的运行机制。
首先,SAS读取merge语句中各数据集的描述部分信息,弄清楚都有哪些变量,然后创建一个数据向量,相当于一个缓冲区,包含所有源数据中的变量以及data步中merge语句之后创建的变量。
然后,就开始依次读取各个源数据集中的第一条记录,写入这个数据向量,然后执行merge语句之后的data步语句,执行到data步结束时将数据向量中的数据写入目标数据集中。就这样逐个数据集逐个记录进行读写,直到读取指针到达包含最多记录的数据集的最后一条记录。
通过了解SAS合并数据集的机制,就很容易理解,为什么各数据集含有相同的变量最后新的数据集中的取值是最有一个源数据集中的值。



雷达卡


京公网安备 11010802022788号







