全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1148 3
2013-10-17
2组数据A1-A3,B1-B4,都是01变量,满足A*=1 and B*=1,则put F

data a;
input No$ A A1 A2 A3 B1 B2 B3 B4 F$;
cards;
1        1        1        0        0        1        0        1        0        4
2        2        0        1        0        0        1        0        0        5
3        3        0        0        1        0        0        1        0        6
4        2        0        1        0        0        1        0        1        7
5        2        0        1        0        0        1        0        1        10
6        1        1        0        0        0        1        0        0        5
;
run;

结果应该是

A1*B1     4
A1*B3     4
A2*B2     5
A3*B3     6
A2*B2     7
A2*B4     7
A2*B2     10
A2*B4     10
A1*B2     5


为了说明我的需求,下面是我写的很傻的内容,希望不要见笑,谢谢~
data _null_;
set a;
if A1=1 and B1=1 then put "A1*B1" +5 F;
if A1=1 and B2=1 then put "A1*B2" +5 F;
if A1=1 and B3=1 then put "A1*B3" +5 F;
if A1=1 and B4=1 then put "A1*B4" +5 F;
if A2=1 and B1=1 then put "A2*B1" +5 F;
if A2=1 and B2=1 then put "A2*B2" +5 F;
if A2=1 and B3=1 then put "A2*B3" +5 F;
if A2=1 and B4=1 then put "A2*B4" +5 F;
if A3=1 and B1=1 then put "A3*B1" +5 F;
if A3=1 and B2=1 then put "A3*B2" +5 F;
if A3=1 and B3=1 then put "A3*B3" +5 F;
if A3=1 and B4=1 then put "A3*B4" +5 F;
run;
二维码

扫码加我 拉你入群

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

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

全部回复
2013-10-17 09:46:30
data a1;
set a;
array aa[3] a1-a3;
array bb[4] b1-b4;
do i=1 to dim(aa);
  do j=1 to dim(bb);
  if aa[i]*bb[j] ne 0 then do;
  var1=vname(aa[i]);
  var2=vname(bb[j]);
  output;
  end;
  end;
  end;
  keep f var1 var2;
run;
data a2;
retain var f;
set a1;
var=strip(var1)!!'*'!!strip(var2);
keep var f;
run;
二维码

扫码加我 拉你入群

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

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

2013-10-17 12:06:43
试了一下,成功了,我要回去仔细的研究下。
wwang111太感谢了!!!!

话说我要什么时候才能有您这样的水平呢。
二维码

扫码加我 拉你入群

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

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

2013-10-17 12:40:48
跑了2组数据,1组是A1-A650,B1-B1000,
很快就跑出来了,1分40秒,再次拜谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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