Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: re: how to quietly svmat?


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: re: how to quietly svmat?
Date   Tue, 11 Nov 2008 21:11:22 -0000

I agree strongly with Kit's approach here. It's been several years since
I reached for -svmat-. 

However, Kit just plucked a program name out of the air, and
understandably forgot that the name -svmat2- was also used a while back
for a program in this territory which is not yet completely superseded. 

. search svmat2, historical 

gives the details. StataCorp's implication in its .key file coding that
-svmat2- is of historical interest only is not quite correct. Questions
to which "use -svmat2-" is the answer still arise about once per year on
Statalist. 

So, I suggest the use of some other name. 

Nick 
n.j.cox@durham.ac.uk 

Christopher Baum

Just avoid it entirely and do it in Mata:

mata:mata clear
mata:
void function mm_svmat2(string scalar mat, string scalar vlist)
{
	m = st_matrix(mat)
	vv = tokens(vlist)
	st_view(X=., 1::rows(m), vv)
	X[. , .] = m
}
end

program drop _all
prog svmat2
syntax anything [,stub(string)]
local vn = cond("`stub'" == "", "var", "`stub'")
scalar nc = colsof(`anything')
forv i=1/`=nc' {
	local vname "`vn'`i'"
	qui gen double `vname' = .
	local vl "`vl' `vname'"
}
mata: mm_svmat2("`anything'","`vl'")
end

webuse auto, clear
qui corr price mpg headroom trunk weight length
mat corr=r(C)

svmat2 corr
svmat2 corr, stub(sergiy)
su

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index