Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Maarten Buis <maartenlbuis@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Dropping Program Saved as an ado-file |
Date | Wed, 5 Sep 2012 11:20:18 +0200 |
On Wed, Sep 5, 2012 at 10:31 AM, Maarten Buis wrote: > I assume you have a main program, which calls -ml-, which calls your > likelihood evaluator program, and that you want to create temporary > variables in your main program and use those in your likelihood > evaluator program. > > The trick is that temporary variables continue to exist as long as the > program that created them has not ended. So all you need is a way to > pass on the names of those temporary variables from your main program > to your likelihood evaluator program. This can be done with global > macros. Here is an example program based on this outline: *------------------- begin example -------------------- clear all program define mainprog version 12.1 syntax varlist gettoken y x : varlist tempvar yvar qui gen `yvar' = `y' / 100 global yvar "`yvar'" // make sure $xvars starts empty macro drop xvars foreach var of local x { tempvar x`var' // I admit, this is silly qui gen `x`var'' = `var'/_pi global xvars "$xvars `x`var''" } subprog end program define subprog version 12.1 di as txt "Dispay summary of " as result "yvar" sum $yvar di _n as txt "Dislay summary of " as result "xvars" sum $xvars end sysuse auto mainprog price mpg foreign *-------------------- end example --------------------- (For more on examples I sent to the Statalist see: http://www.maartenbuis.nl/example_faq ) Hope this helps, Maarten --------------------------------- Maarten L. Buis WZB Reichpietschufer 50 10785 Berlin Germany http://www.maartenbuis.nl --------------------------------- * * 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/