foreach var of varlist at lt invt ppent sale re xrd ta dv {
local gtitle = "Total Assets"
if "`var'" == "lt" {
local gtitle = "Total Liabilities"
}/* List the rest of the titles */
discont `var' port // This is my program that returns scalars.
matrix tmpmat_`var' = r(leftpred), r(rightpred), ///
r(d), r(zstat), r(pstat)
/* You have to initialize the matrix, of course. */
if "`var'" == "at" {
matrix tmpmat_all = tmpmat_`var'
}
else { /* But then the format is pretty friendly */
matrix tmpmat_all = (tmpmat_all \ tmpmat_`var')
}
/* Now how to get those title names into the matrix rows? */
local mrownames: display `"`mrownames'"' " " `"`"`gtitle'"'"'
} /* Done with the foreach*/
matrix colnames tmpmat_all = E[Left] E[Right] Difference Z-stat P-stat
matrix rownames tmpmat_all = `mrownames'
esttab matrix(tmpmat_all), nomtitles
esttab matrix(tmpmat_all) using table.tex, nomtitles replace
In case that wasn't clear, the operable line to get those labels working was:
local mrownames: display `"`mrownames'"' " " `"`"`gtitle'"'"'
Come on STATA... seriously? I think this is the logic:
1) local mrownames: display
Of course we can't assign it directly, you gotta format it. This is probably my ignorance, I'm sure there's a better way.
2) `"`mrownames'"' " " `"`"`gtitle'"'"'
Make sure the variable between these keeps its quotes.
3) `"`mrownames'"' " " `"`"`gtitle'"'"'
The list so far. In quotes remember.
4) `"`mrownames'"' " " `"`"`gtitle'"'"'
Make sure to leave a space between your quoted strings.
The new title variable, so good so far.
6) `"`mrownames'"' " " `"`"`gtitle'"'"'
It's gotta be in quotes, of course.
Because you are up late and deserve to be punished. How long did it take you to figure this one out? Yeah, you could have been sleeping already if this were Python.
I really don't like STATA.
No comments:
Post a Comment