biseven
有两个数据集A,B。A,B有共同的变量name。B中每个name对应一个变量,比如“weight”。但是A中的name有重复,即可能有2个“xiaoming”之类的。我想实现2个数据集合并,或者将变量“weight”对应的加到A中去,请问怎么用SAS实现啊?
举个例子是说:
A数据集:
name math
wang 78
liu 62
wang 80
li 91
li 89
B数据集:
name weight
wang 56
li 66
liu 70
我欲将weight变量对应的并入到数据集A中去,求教!
谢谢!
yihui
写清楚标题!
losttemple
将变量“weight”对应的加到A中去
不明白
biseven
就是希望得到下面这个数据集:
name math weight
wang 78 56
liu 62 70
wang 80 56
li 91 66
li 89 66
ruyi
try left join in Proc Sql
Proc Sql;
create table b as
select a. *, b. weight
from a left join b
on a.name=b.name;
quit;
ruyi
or if you can also use data step merge statement in-variable, sort a and b first
data c;
merge a(in=ina) b(in=inb);
if ina;
run;
biseven
thanks!
hongtianli
only using merge is ok, because valuses of name in datab are included in that of a.
王笑权
看上去是横向合并 1
data a;
input name $ math ;
cards;
wang 78
liu 62
wang 80
li 91
li 89
;
data b;
input name $ weight;
cards;
wang 56
liu 70
wang 56
li 66
li 66
;
data ab;
merge a b;
proc print;
run;
2. 假如a与b已分别作成txt文件存放在d盘,则调用合并
data a;
infile 'd:\a.txt';
input name $ math;
data b;
infile 'd:\b.txt';
input name $ weight;
data ab;
merge a b;
proc print data=ab;
run;
一般在input语句之后可以编程其他内容
apple9981
直接合并
carla
sql and merge both works