由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 新手请教proc IML里do loop的问题
相关主题
问有关sas的画图问题【R求问】关于vector赋值
觉得SAS array超难用Re: 请问SAS如何学起?
SAS PROC MODEL中变量赋值,请大侠解答~急等,谢谢![合集] 发伪币3000 - 不用SAS\IML如何用SAS做矩阵计算?
请教一个SAS的问题如何用SAS求解方程
how to get a length of a vector in SAS/IML请问熟悉SAS IML的
SAS simulation question (包子题 - 5个)SAS/IML读已有数据问题
Ask about IML in SAS[合集] 问个SAS入门级的问题
R 问题a R loop question
相关话题的讨论汇总
话题: datain话题: loop话题: expxb话题: iml话题: sumexpxb
进入Statistics版参与讨论
1 (共1页)
a***d
发帖数: 336
1
需要在proc IML里用一个 1 到3000000的do loop。
每个loop里要给一个15000000*1的vector的几个element赋值。
跑一次要挺长时间。问题是这个loop是用来算loglikelihood的,
要被下面optimize的routine 反复的call。请教大家怎么能让
这个do loop快一些。
在R里有sapply之类可以替代for loop,算起来快无数倍,sas里有
sapply这样的function么?
code如下:
proc IML;
/* write the log-likelihood function*/
start LogLik(param) global (datain);
igrp = datain[,5];*datain[,5] is group id
X = datain[,1:4]; *datain[,1:4] are independent variables
expXb = exp(X*param);
uniqIgrp = unique(igrp)`;
sumExpXb = j(nrow(X),1);
/*use do loop to compute sum(expXb) for each groups */
do i = 1 to nrow(uniqIgrp);
ii = LOC(igrp=uniqIgrp[i,]); /*by design, ii is size 1*5 */
sumExpXb[ii,] = sum(expXb[ii,]);
end;
f = expXb/sumExpXb;
return ( f );
finish;
quit;
1 (共1页)
进入Statistics版参与讨论
相关主题
a R loop questionhow to get a length of a vector in SAS/IML
a question about PROC IMLSAS simulation question (包子题 - 5个)
proc IMLAsk about IML in SAS
How well is SAS/IML studio integrating with R.?R 问题
问有关sas的画图问题【R求问】关于vector赋值
觉得SAS array超难用Re: 请问SAS如何学起?
SAS PROC MODEL中变量赋值,请大侠解答~急等,谢谢![合集] 发伪币3000 - 不用SAS\IML如何用SAS做矩阵计算?
请教一个SAS的问题如何用SAS求解方程
相关话题的讨论汇总
话题: datain话题: loop话题: expxb话题: iml话题: sumexpxb