0

我正在尝试将 3 个变量转换为矩阵,例如,如果您有以下情况:

(CHAR) (char) (数字)

变量 1 变量 2 变量 3

AB 1

光盘 2

英孚 3

公元 4

自动对焦 5

CB 6

CF 7

EB 8

编 9

关于如何将上述三个变量转换为下面这种形式的矩阵的任何想法,我的目标是使用这个 matix 构建一个热图

B   D   F

一个 1 4 5

C 6 2 7

8 9 3

任何人都可以使用 SAS/IML 或其他程序帮助我在 SAS 中执行此操作吗?谢谢!

4

2 回答 2

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};

有关详细信息,请参阅在 SAS/IML 中创建热图

于 2015-01-09T14:02:12.263 回答
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;
于 2015-01-08T09:48:29.430 回答