Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

Re: st: use tempfile


From   Phil Clayton <[email protected]>
To   [email protected]
Subject   Re: st: use tempfile
Date   Tue, 19 Jun 2012 23:46:44 +0930

This works for me:

/*===begin===*/
sysuse auto, clear

local arg "yes"

preserve
tempfile tempresults
	gen X = 1
save "`tempresults'"

if "`arg'" == "no" {
	restore, preserve
}
else {
	restore, not
	use `tempresults', clear
}
/*===end===*/

I am left with a dataset containing the variable X - this is what was saved to `tempresults'. If this is not happening for you then most probably you haven't shown us enough of your code (eg you have another -preserve- buried somewhere).

Of course, the above code is rather messy - this would achieve the same end:

/*===begin===*/
sysuse auto, clear

local arg "yes"

if "`arg'"=="yes" {
	gen X = 1
}
/*===end===*/

Presumably you're trying to do something more complicated. But I suspect that in this case the devil is in the details.

Phil

On 19/06/2012, at 11:37 PM, Lythgoe, Dan wrote:

> Maarten, Phil thanks for the input so far. Phil your suggested code makes perfect sense to me but still doesn't seem to quite do the job; I want it to clear the current data set and use the `tempresults' data set instead.
> 
> Dan
> 
> 
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Phil Clayton
> Sent: 19 June 2012 14:41
> To: [email protected]
> Subject: Re: st: use tempfile
> 
> If you -preserve- within a do-file (or program), Stata will automatically -restore- at the end of the do-file unless you specifically tell it not to.
> 
> Try something like this:
> 
> /*===begin===*/
> local arg "yes"
> 
> preserve
> tempfile tempresults
> 	gen X = 1
> save "`tempresults'"
> 
> if "`arg'" == "no" {
> 	restore, preserve
> }
> else {
> 	restore, not
> 	use `tempresults', clear
> }
> /*===end===*/
> 
> Phil
> 
> On 19/06/2012, at 10:54 PM, Lythgoe, Dan wrote:
> 
>> Dear Statalist,
>> 
>> Apologies in advance for such a simple question but I am struggling with this one. I want to -use- a temporary file stored using -tempfile- if an argument is true(/false), but am clearly missing something as I can't seem to get STATA to -use- the temporary file:
>> 
>> 
>> /*===begin===*/
>> local arg "yes"
>> 
>> preserve
>> tempfile tempresults
>> 	gen X = 1
>> save "`tempresults'"
>> 
>> if "`arg'" == "no" {
>> 	restore, preserve
>> }
>> else {
>> 	use `tempresults', clear
>> }
>> /*===end===*/
>> 
>> Any assistance would be greatly appreciated.
>> 
>> Many thanks
>> Dan Lythgoe
>> 
>> 
>> 
>> 
>> *
>> *   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/
> 
> *
> *   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index