全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2732 6
2007-01-11

data tmp1;
input id var1 var2 var3;
cards;
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
;
run;

data tmp2;
input id var_nm $ value;
cards;
1 var1 2
2 var2 2
3 var3 2
4 var4 2
;
run;

data _null_;
set tmp2 end=final;
call symput(("id"||compress(_n_)),id);
call symput(("var_nm"||compress(_n_)),var_nm);
call symput(("value"||compress(_n_)),value);
if final then call symput("n",_n_);

run;

data tmp1;
set tmp1;
%do i=1 %to &n;
%if id&i=id %then %do;
&&var_nm&i=&&value&i;
%end;
run;

希望能实现第四个数据步的功能,但是我现在这样写是不对的,如何修改,谢谢

二维码

扫码加我 拉你入群

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

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

全部回复
2007-3-8 09:53:00
It need macro language. Please see code below:

data tmp1;
input id var1 var2 var3;
cards;
1 1 1 1
2 1 1 1
3 1 1 1
4 1 1 1
;
run;

data tmp2;
input id var_nm $ value;
cards;
1 var1 2
2 var2 2
3 var3 2
4 var4 2
;
run;

data _null_;
set tmp2 end=final;
call symput(("id"||compress(_n_)),id);
call symput(("var_nm"||compress(_n_)),var_nm);
call symput(("value"||compress(_n_)),value);
if final then call symput("n",_n_);

run;

%macro a;
data tmp1;
set tmp1;
%do i=1 %to &n;
%if id&i=id %then %do;
&&var_nm&i=&&value&i;
%end;
%end;
run;
%mend;

%a
二维码

扫码加我 拉你入群

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

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

2007-3-8 10:35:00
果然是高手啊,很厉害的!
二维码

扫码加我 拉你入群

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

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

2007-3-8 10:36:00
高手啊,很厉害的!
二维码

扫码加我 拉你入群

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

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

2007-3-8 13:42:00
高手!!!!
二维码

扫码加我 拉你入群

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

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

2007-3-19 14:22:00
%macro test;
data _null_;
set tmp2 end=final;
call symput(("id"||compress(_n_)),id);
call symput(("var_nm"||compress(_n_)),var_nm);
call symput(("value"||compress(_n_)),value);
if final then call symput("n",_n_);
run;
data _null;
set tmp1;
call symput(("iid"!!compress(_n_)),id);
run;
data tmp1;
set tmp1;
%do i=1 %to &n;
%if &&id&i=&&iid&i %then %do;
&&var_nm&i=&&value&i;
%end;
%end;
run;
%mend test;
%test
前两段是一样的。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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