楼主: 依媚
13041 14

[求助]如何把SAS数据集作为矩阵进行运算? [推广有奖]

11
peter 发表于 2011-3-21 22:52:08
ntsean 发表于 2011-3-21 20:02
你前面退出iml了,E和A就没了
在用iml,要重新建立E和A
不好意思,我把quit都去掉了还是不行。
proc iml;
I130=I(130);
create E from I130;
append from I130;
proc print data=E;
run;

proc iml;
use peter.A;   
read all into A;

proc iml;
b=E-A;


请问该怎么处理啊?
41   proc iml;
NOTE: IML Ready
42   I130=I(130);
43   create E from I130;
44   append from I130;
NOTE: Exiting IML.
NOTE: The data set WORK.E has 130 observations and 130 variables.
NOTE: PROCEDURE IML used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds


45   proc print data=E;
46   run;

NOTE: There were 130 observations read from the data set WORK.E.
NOTE: PROCEDURE PRINT used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds


47   proc iml;
NOTE: IML Ready
48   use peter.A;
49   read all into A;
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds


50   proc iml;
NOTE: IML Ready
51   b=E-A;
ERROR: (execution) Matrix has not been set to a value.

operation : - at line 51 column 4
operands  : E, A

E      0 row       0 col     (type ?, size 0)


A      0 row       0 col     (type ?, size 0)


statement : ASSIGN at line 51 column 1

12
ntsean 发表于 2011-3-22 02:11:29
不理解你为什么要用那么多的proc iml
你把所有要用iml算的放在一个iml不久行了
而且你的E,是个dataset,不是矩阵
你的A,是矩阵,但是用了一个新的iml,之后内存里面就没有A了
所以在你的最后一个iml里面,是没有E和A的
你要重新定义E和A

13
275769263 发表于 2011-3-22 16:57:54
用fcmp试试,不过不知道里面的矩阵函数是否合适你用。
data sample1;
input x1-x2;
cards;
1 2
3 4
;
run;
data sample2;
input x1-x2;
cards;
1 2
1 2
;
run;
proc fcmp;
        array mat1[1]/nosymbols;
        array mat2[1]/nosymbols;
        array result[2,2]/nosymbols;
        rc=read_array('work.sample1',mat1);
        rc=read_array('work.sample2',mat2);
        call mult(mat1,mat2,result);
        rc=write_array('work.out',result);
quit;

14
peter 发表于 2011-3-26 11:45:27
13# 275769263 谢谢您的回复!

15
☆Justforyou 发表于 2013-10-25 17:52:13
ntsean 发表于 2011-3-18 22:58
在IML里面你不能直接用data step,如果你要把矩阵存为data set,你可以

proc IML;
正解

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 19:36