作业帮 > 数学 > 作业

求助关于在SAS中将矩阵做处理后重新生成矩阵和数据集的方法

来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/11 17:06:24
求助关于在SAS中将矩阵做处理后重新生成矩阵和数据集的方法
我对某个对称矩阵m2作如下处理后,可以得到其对角线以下的下三角矩阵的所有元素:
proc iml;
use ssj.m2;
read all var _all_ into xx;
do i=1 to nrow(xx);
do j=i+1 to ncol(xx);
x=xx[j,i];
print x;
end;
end;
quit;
最后可以将其中所有元素输出.
但是我想问的是,如果想把对角线下的所有元素提取出来后,形成一个新的矩阵,进一步地,形成一个新的数据集,应该作怎样的处理?
求助关于在SAS中将矩阵做处理后重新生成矩阵和数据集的方法
你是想把下三角矩阵中的元素提出来,生成一个什么样的矩阵?
矩阵到数据集,利用CREATE ;APPEND函数就可以.
再问: 我想问的就是,把下三角的元素提出来重新形成一个新数据集,这段程序具体该怎么写。。。 目前我只会写到上面这种程度,也就是把这些元素全部输出。。。 刚刚开始学SAS,不好意思。。。
再答: iml中的VECH命令就可以了
再问: 额,我在书上好像没看到这个VECH,HELP里也没搜到。。。 能不能帮我简单地写下?谢谢
再答: 一个例子: proc iml; /* 1. define a correlation matrix */ R = {1.0 0.1 0.2 0.3, 0.1 1.0 0.4 0.5, 0.2 0.4 1.0 0.6, 0.3 0.5 0.6 1.0 }; Y = vech(R); /* extract lower triangular elements, including the diagonal */ print Y; quit;
再问: 我编了下面这段程序: proc iml; use ssj.m2; read all var _all_ into xx; do i=1 to nrow(xx); do j=1 to ncol(xx); if j>=i then xx[i,j]=0; end; end; y=vech(xx); print y; quit; 但是SAS日志在y=vech(xx);下面报错: ERROR: Invocation of unresolved module VECH. 请问这是为什么?
再答: 因为你的iml板块比较低,如果是sas9.3或者iml statio 3.2以上就支持该命令了