I have two function modules VCE and VCM that differs only in the way M is computed and an additional argument CLUSTER. How can I create a single function module that can handle both computations of M? Thanks, Raphael start vce(y,x,b0,b1,p1,p2,v); ... statements here ... v = (dg(eta,p2)#dg(xb,p1)#(w-mu)/v)##2; D = diag(v); M = t(X)*D*X; return(M); finish vce; start vcm(cluster,y,x,b0,b1,p1,p2,v); ... statements here ... M = J(p,p,0); v = (dg(eta,p2)#dg(xb,p1)#(w-mu)/v)##2; uClx = unique(Cluster); do j = 1 to ncol(uClx); dx = loc(Cluster = uClx ); M = M + t(X[dx,])*v[dx]*t(v[dx])*X[dx,]; end; return(M); finish vce;
... View more