SAS中文论坛

标题: 请问一个数据合并的问题 [打印本页]

作者: shiyiming    时间: 2008-11-13 02:32
标题: 请问一个数据合并的问题
小弟我是sas初学者。
现在有5个数据data。
每个数据的前2个变量(variable)是相同的,现在想讲这5个数据合并成一个数据。要求必须是前2变量(var)是一样的才合并在一行(obv)。
我用了merge发现结果不是我想要的。请问论坛高手帮忙解决一下,最好能给一下参考代码。
作者: shiyiming    时间: 2008-11-13 10:17
标题: Re: 请问一个数据合并的问题
没明白你的要求,前2个变量是一样表示变量名一样呢?还是变量的值一样?,而且你说合并到一行又是什么意思?
如果要比较变量名一样,笨一点的方法,用
proc content data=数据集 out=mydataset;
quit;
可以得到每个dataset的变量名的一个数据集,然后,就可以比较前两个变量名了。
如果是比较变量的值,可以用proc sql的,where子句来实现条件选择。
作者: shiyiming    时间: 2008-11-13 14:43
标题: Re: 请问一个数据合并的问题
[code:1b1dozmu]data a1;
     input id $ name $ chinese;
         cards;
1001 Tom 86
1001 Jim 89
1002 Lucy 92
1002 Kate 90
1003 Lily 88
1003 Jone 95
;
run;

data a2;
     input id $ name $ Math;
         cards;
1001 Tom 90
1001 Jim 86
1002 Lucy 93
1002 Kate 95
1003 Lily 98
1003 Jone 92
;
run;

proc sort data=a1;
     by id name;
run;

proc sort data=a2;
     by id name;
run;

data aa;
     mereg a1 a2;
         by id name;
run;[/code:1b1dozmu]
作者: shiyiming    时间: 2008-11-15 00:23
标题: Re: 请问一个数据合并的问题
proc sql;
create table work.a as
select a.id,a.name,a.chinese,b.math
from work.a1 a ,work.a2 b
where a.name=b.name
order by a.id;
quit;
作者: shiyiming    时间: 2008-11-16 15:42
标题: Re: 请问一个数据合并的问题
你的merge拼写错误
改正后的结果:

id        name        chinese        Math
1001        Jim        89        86
1001        Tom        86        90
1002        Kate        90        95
1002        Lucy        92        93
1003        Jone        95        92
1003        Lily        88        98
作者: shiyiming    时间: 2008-11-17 16:30
标题: Re: 请问一个数据合并的问题
以上merge要注意by的两个变量如果出现多对多的情况哦




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2