在SAS中将矩阵转换为3列表

时间:2017-11-27 07:11:59

标签: matrix sas sas-iml

使用SAS将矩阵转换为三列时遇到问题 以下是使用Excel执行此操作的参考,您可以看到Convert matrix to 3-column table ('reverse pivot', 'unpivot', 'flatten', 'normalize')

我一直在谷歌,发现http://support.sas.com/resources/papers/proceedings13/319-2013.pdf做反向(< =) 但我从来没有见过一个人在做什么(=>)。

我知道我可以使用某些函数来获取所有行/列名称,方法是使用SAS / SQL& SAS / IML为每个成对单元分配值 但是,我想寻找任何可以帮助我更清楚易懂的功能 请注意,SAS是我唯一允许使用的语言...抱歉我无法使用Excel来执行此操作...

1 个答案:

答案 0 :(得分:0)

您可以使用数组

案例1:当列名按特定顺序排列时:

data have1;
input  col1 $ peter $ john $ brian $ mary $;
cards;
f1  x   .   .   .
f2  x   x   .   .
f3  .   x   .   x
f4  .   x   x   .
;
run;



data want1;
retain col1 col2 values;
 set have1;
 array p[4] $5. peter--mary;
 do i=1 to 4;
 values = p(i);
 col2 = VNAME(P(i));
 output;
 end;
 keep col1 col2 values ;
run; 

案例2:当列名不按特定顺序时:

{{1}}

如有任何疑问,请与我联系。