SAS软件数据合并问题,求助各位大神。。。。。。
(结果请看附件)为什么会这样,求解释。。。用merge合并后....为什么X1在AA集中只取了4这个观测值。。。。。。555 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
我也想了解一下, 有人答我嗎 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;
高手,不错
页:
[1]