刘益富 发表于 2011-1-16 22:43

SAS软件数据合并问题,求助各位大神。。。。。。

(结果请看附件)为什么会这样,求解释。。。用merge合并后....为什么X1在AA集中只取了4这个观测值。。。。。。555

liwenhui 发表于 2012-3-17 15:39

merge 会把AA和BB中相同位置的观察值匹配,然后再合并,如果AA BB中相同变量有相同的值,则保留该值,并匹配其他值;如果AA BB中相同变量的值都不一样,则保留第二个(BB)的值,AA的值被覆盖。
你试试如下:
data AA;
input x1 x2;
cards;
1 2
7 8
4 5
;
data BB;
input x1 y1 y2;
cards;
11 22 33
44 55 66
77 88 99
;
run;
data aabb;
set AA BB;
run;
proc print data=aabb;
run;
得到的
                Obs    x1    x2    y1    y2

                                  1      1     2     .     .
                                  2      7     8     .     .
                                  3      4     5     .     .
                                  4     11     .    22    33
                                  5     44     .    55    66
                                  6     77     .    88    99

洪振原 发表于 2012-3-17 21:17

我也想了解一下, 有人答我嗎

qq0055 发表于 2012-3-19 10:11

merge 语句是按行来合并的,并且合并依靠到 by 语句,如果是是一对一合并,也就是两个数据集的变量个数都是一样的,就是可以不需要用到 by 语句,如果不一样,且要求变量名不变,则一定要依靠 by语句。
data a;
input x1 x2;
cards;
1 2
7 8
4 5
;
data b;
input x1 y1 y2;
cards;
11 22 33
44 55 66
;
data c;
merge a b;
by x1;
proc print data=c;
run;




071029 发表于 2012-9-14 13:47

高手,不错
页: [1]
查看完整版本: SAS软件数据合并问题,求助各位大神。。。。。。