全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1461 2
2014-03-12
悬赏 300 个论坛币 已解决
复制代码
上面的程序中想要将“a=near[>:<,1]; ”相应的ID另存为数据集,请问要怎么修改?

最佳答案

intheangel 查看完整内容

不太懂iml语句,如果a在矩阵模块里是个矩阵的话,我用宏把它每个都导了出来,然后set到了一起 data a; input a; run; %macro a; proc iml; use X1; read all; new_ac=J(500,1,0); new_d_ar=J(500,1,0); near=J(500,3,10000); %do i=1 %to 500; new_ac=ac; new_d_ar=d_ar; diffni=abs(ni-ni); diffni=100; if revman=1 | exman=1 then do; inds=indust; ...
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-12 13:23:38
不太懂iml语句,如果a在矩阵模块里是个矩阵的话,我用宏把它每个都导了出来,然后set到了一起



data a;
input a;
run;

%macro a;
proc iml;
use X1;
read all;
new_ac=J(500,1,0);
new_d_ar=J(500,1,0);
near=J(500,3,10000);

%do i=1 %to 500;
new_ac[i,1]=ac[i,1];        
new_d_ar[i,1]=d_ar[i,1];
diffni=abs(ni-ni[i,1]);        
diffni[i,1]=100;        

if revman[i,1]=1 | exman[i,1]=1 then do;
inds=indust[i,1];               
ye=year[i,1];        
do k=1 to 500;        
if indust[k,1]=inds & year[k,1]=ye then near[k,1]=diffni[k,1];         
if indust[k,1]=inds & year[k,1]=ye then near[k,2]=ac[k,1];         
if indust[k,1]=inds & year[k,1]=ye then near[k,3]=d_ar[k,1];        

end;


a=near[>:<,1];

create a_&i from a[colname=a];
append from a;
close a;

new_ac[i,1]=near[a,2];
new_d_ar[i,1]=near[a,3];
end;
%end;
result=new_ac || new_d_ar;

Create new  from result[colname={new_ac new_d_ar}];
Append from result;
Close new;        
quit;

%do i=1 %to 500;
data a;
set a a_&i;
run;
%end;

%mend;

%a;



二维码

扫码加我 拉你入群

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

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

2014-3-19 04:29:56
intheangel 发表于 2014-3-12 13:23
不太懂iml语句,如果a在矩阵模块里是个矩阵的话,我用宏把它每个都导了出来,然后set到了一起
宏运行没有成功,不过感谢你的热心帮助
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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