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
[email protected]
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