全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2358 1
2010-01-25

  32 横向合并数据集
  横向合并即是变量的合并,按照记录号的顺序或者某个关键变量的数值将不同的数据集中的不同变量合并在一起组成新的数据集,新数据集中的变量数是所有源数据集中不重复变量的总和。横行合并分为一对一合并和匹配合并。
  (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合并数据集的机制,就很容易理解,为什么各数据集含有相同的变量最后新的数据集中的取值是最有一个源数据集中的值。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-1-25 16:57:30
  (2)匹配合并
  匹配合并跟一对一合并不同的是,SAS按匹配的变量或变量组的顺序读写数据,而不是按照记录号的顺序一条一条读取。
  例如 DATA1
  DATA2
  COMBINED
  Year
  VarX
  Year
  VarY
  Year
  VarX
  VarY
  1991
  X1
  1991
  Y1
  1991
  X1
  Y1
  1992
  X2
  1991
  Y2
  1991
  X1
  Y2
  1993
  X3
  +
  1993
  Y3
  =
  1992
  X2
  .
  1994
  X4
  1994
  Y4
  1993
  X3
  Y3
  1995
  X5
  1995
  Y5
  1994
  X4
  Y4
  1995
  X5
  Y5
  data combined;
  merge data1 data2;
  by year;
  run;
  
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群