Indeed. I edited the help file recently and spotted that I had updated the code not so long ago but not uploaded the latest version to SSC.
-
Login or Register
- Log in with
*! 1.6.1 NJC 6nov2023 *! 1.6.0 NJC 27mar2022 * 1.5.0 NJC 13jul2020 * 1.4.1 NJC 5apr2020 * 1.4.0 NJC 14mar2019 * 1.3.1 NJC 14jul2017 * 1.3.0 NJC 3jul2017 * 1.2.0 NJC 8mar2017 * 1.1.0 NJC 2oct2016 * 1.0.0 NJC 5sept2016 program multiline version 11 syntax varlist(numeric) [if] [in] /// [, by(str asis) mylabels(str asis) MISSing SEParate SEPby(varname) savedata(str asis) SHOW(varname) addplot(str asis) need(str asis) *] // undocumented show() addplot() quietly { if "`sepby'" != "" { if "`separate'" != "" { di as err "separate and sepby() options cannot be combined" exit 198 } } if "`missing'" != "" marksample touse, novarlist else marksample touse count if `touse' if r(N) == 0 exit 2000 preserve keep if `touse' drop `touse' gettoken yvar rest : varlist local J = 0 while "`yvar'" != "" { local ++J local lbl`J' : var label `yvar' if `"`lbl`J''"' == "" local lbl`J' "`yvar'" local last "`yvar'" gettoken yvar rest : rest } local xvar "`last'" local yvar : list varlist - xvar capture tsset if "`r(panelvar)'" != "" local panelvar "`r(panelvar)'" foreach v of local yvar { local call `call' `v' `panelvar' `xvar' `show' `sepby' `need' } tempname y tempfile myxvar local label : value label `xvar' label save `label' using "`myxvar'" if "`panelvar'" != "" { local label2 : value label `panelvar' if "`label2'" != "" { tempfile mypanelvar label save `label2' using "`mypanelvar'" local flag1 = 1 } } if "`sepby'" != "" { local label3 : value label `sepby' if "`label3'" != "" { tempfile mysepby label save `label3' using "`mysepby'" } } stack `call', into(`y' `panelvar' `xvar' `show' `sepby' `need') clear do "`myxvar'" if "`label'" != "" { label val `xvar' `label' } if "`label2'" != "" { do "`mypanelvar'" label val `panelvar' `label2' } if "`label3'" != "" { do "`mysepby'" label val `sepby' `label3' } local Jm1 = `J' - 1 if `"`mylabels'"' != "" { tokenize `mylabels' forval j = 1/`Jm1' { label def _stack `j' `"``j''"', add } } else forval j = 1/`Jm1' { label def _stack `j' `"`lbl`j''"', add } label val _stack _stack } sort `panelvar' `xvar' label var `xvar' `"`lbl`J''"' if `"`by'"' == "" local by "cols(1)" else { local found 0 foreach opt in c co col cols { if strpos(`"`by'"', "`opt'(") { local found 1 continue, break } } if !`found' local by `"`by' cols(1)"' } local Y `y' quietly { if "`separate'" != "" { separate `y', by(_stack) veryshortlabel local y `r(varlist)' } else if "`sepby'" != "" { separate `y', by(`sepby') veryshortlabel local y `r(varlist)' } } if "`show'" != "" local show mla(`show') mlabpos(3) line `y' `xvar', by(_stack, yrescale note("") `by') /// ytitle("") yla(, ang(h)) c(L) /// subtitle(, pos(9) bcolor(none) nobexpand place(e)) `show' `options' /// || `addplot' if `"`savedata'"' != "" { capture rename `Y' _y save `savedata' } end
Comment