全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2161 6
2009-07-14
程序目的: 从a中读取字段b ,将其与C中的字段b进行比较,如相等,返回c数据集中的字段c,使其添加到a数据集中
请问下面程序是否正确?
data a;
input a b;
cards ;
1 20090202
2 20090404
;run;
data b;
input b c;
cards;
20090303 2
20090202 4
20090404 5
;run;
%global tt;
%global rat;
option mprint;
%macro a(kk);

data e;
set b;
if &kk=b then rat=c;
run;
%mend a;
data c /debug;
set a;
call symput('tt',b);
%a(&tt);
c=rat;
run;
二维码

扫码加我 拉你入群

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

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

全部回复
2009-7-15 02:02:29
用sql更简单些:
data x;         
input a b;      
cards ;         
1 20090202      
2 20090404      
;run;
         
data y;         
input b c;      
cards;         
20090303 2      
20090202 4      
20090404 5      
;run;     

proc sql;
select x.*,y.c
from x left join y
on x.b=y.b
;
quit;
二维码

扫码加我 拉你入群

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

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

2009-7-15 02:04:48
输出到新的数据集a_new:
proc sql;
create table a_new as
select x.*,y.c
from x left join y
on x.b=y.b
;
quit;
二维码

扫码加我 拉你入群

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

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

2009-7-15 14:19:32
3# david0
谢谢解答
但是我要处理的数据将是百万条记录的数据集,因而用SQL会比较耗时,而且我也想知道为什么我用MACRO将一个数据集中的字段值返回到另一个数据集中,只能返回符合条件的最后一条记录,而不是全部。
二维码

扫码加我 拉你入群

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

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

2009-7-15 14:36:29
parnwang 发表于 2009-7-15 14:19
3# david0
谢谢解答
但是我要处理的数据将是百万条记录的数据集,因而用SQL会比较耗时,而且我也想知道为什么我用MACRO将一个数据集中的字段值返回到另一个数据集中,只能返回符合条件的最后一条记录,而不是全部。
就本例来说 有证据表明宏会比SQL快么?
二维码

扫码加我 拉你入群

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

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

2009-7-15 15:54:12
没有,因为这是实验性数据,只为验证上述编写的程序。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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