我试图将3个vairables转换为矩阵,如果您有以下内容,请参阅示例:
(CHAR)(char)(num)
Var1 Var2 Var3
A B 1
C D 2
E F 3
A D 4
A F 5
C B 6
C F 7
E B 8
E D 9
关于如何将上述三个变量转换为下面的矩阵形式的任何想法,我的目标是使用此matix构建热图
B D F
A 1 4 5
C 6 2 7
E 8 9 3
任何人都可以帮助我在SAS中使用SAS / IML或其他程序吗?谢谢!
答案 0 :(得分:1)
假设您使用的是最新版本的SAS / IML(13.1或更高版本),请使用HEATMAPCONT或HEATMAPDISC调用:
proc iml;
m = {1 4 5,
6 2 7,
8 9 3};
call heatmapcont(m) xvalues={B D F} yvalues={A C E};
有关详细信息,请参阅Creating heat maps in SAS/IML
答案 1 :(得分:0)
如果您先发布代码然后提出问题,那会更好。
我认为proc transpose
是最快的解决方案。
data _t1;
input var1 $ var2 $ var3 5.;
cards;
A B 1
C D 2
E F 3
A D 4
A F 5
C B 6
C F 7
E B 8
E D 9
run;
proc sort data=_t1;by var1;run;
proc transpose data=_t1 out=_t2(drop=_name_ rename=(var1=HereUpToYou));
by var1;
var var3;
id var2;
run;