Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: problem calling macros using file write in a program


From   Eric Booth <ebooth@ppri.tamu.edu>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: problem calling macros using file write in a program
Date   Tue, 16 Mar 2010 18:22:07 -0500


Hi Tim:
One problem is that you -file open-/-file write- to the handle "results" and you -file close- the handle "test".

Second, if you -set trace on- before you run your program, you'll see that it's not writing `model' because the 
program is not passed `model', so it writes what it sees (e.g.,  "  file write results `""'  ")

Instead, you might want to pass the 'using' file and the local macro as part of the syntax; something like this should 
get you started:

**********
cap erase "OLSresults.txt" //--just so that we know that this program wrote the macro
**

cap program drop writeit
program define writeit
syntax using/ , LOCal(string)
cap file close results
file open results using "`using'", write replace
file write results `"`local'"'
file close results
end

**examples**
writeit using "OLSresults.txt", local("Model 1. All States, no controls.")
set trace on
writeit using "OLSresults2.txt", loc("Model 2. Yada Yada")
set trace off
**********

~ Eric
__
Eric A. Booth
Public Policy Research Institute
Texas A&M University
ebooth@ppri.tamu.edu
Office: +979.845.6754



On Mar 16, 2010, at 5:32 PM, Tim Scharks wrote:

> 
> local model "Model 1. All states, no controls."
> file open results using OLSresults.txt, write replace
> file write results `"`model'"'
> file close test
> 
> This works fine--my specified file has the local macro text written to
> it and I know how to customize with tabs, new lines, and my regression
> results.
> 
> However, I would think that the above routine could be made even
> simpler with a program that would execute from within the .do file. I
> have already written a small program in this manner to add stars for
> significance to my regression output using a series of if statements
> with tests on the p values file write commands. Therefore I thought
> this would work:
> 
> 
> program define writeit
>    file open results using OLSresults.txt, write replace
>     file write results `"`model'"'
>     file close test
> end
> 
> local model "Model 1. All states, no controls."
> writeit



On Mar 16, 2010, at 5:32 PM, Tim Scharks wrote:

> Hi everyone, long time reader, first time asker. I would very much
> appreciate any light you could shine on this problem.
> 
> I am trying to write a short program to routinize my results output
> using file write. Here is a short example of the function I am trying
> to automate:
> 
> local model "Model 1. All states, no controls."
> file open results using OLSresults.txt, write replace
> file write results `"`model'"'
> file close test
> 
> This works fine--my specified file has the local macro text written to
> it and I know how to customize with tabs, new lines, and my regression
> results.
> 
> However, I would think that the above routine could be made even
> simpler with a program that would execute from within the .do file. I
> have already written a small program in this manner to add stars for
> significance to my regression output using a series of if statements
> with tests on the p values file write commands. Therefore I thought
> this would work:
> 
> 
> program define writeit
>     file open results using OLSresults.txt, write replace
>      file write results `"`model'"'
>      file close test
> end
> 
> local model "Model 1. All states, no controls."
> writeit
> 
> 
> Obviously the program would be longer with more steps to make it
> useful. But even as written here executing the program writes nothing
> to my file--with the replace command it wipes it clean but doesn't
> write anything!?!
> 
> Any help would be greatly appreciated. Thanks, Tim
> *
> *   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/


*
*   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   |   Site index