Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Stas Kolenikov <skolenik@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: r(110) error with -svy-, -mark-, -marksample- |
Date | Tue, 31 Jul 2012 20:10:56 -0500 |
They were dropped automatically, but you could not benefit from it. Entertain this: -- tempvar_example.do -- sysuse auto, clear tempvar one gen byte `one' = 1 save auto_one, replace exit -- end of tempvar_example.do -- At the completion of tempvar_example.do, you won't see any tempvars (although -describe- would indicate that the file has actually changed). But the saved version will contain whatever was present at that spot in time, including the ugly named __000000 or whatever the available -tempvar- name will be. So -capture drop __00*- may often be a good idea (you want -capture- just in case that there was no temp crap left, otherwise -drop- would produce an error). On Tue, Jul 31, 2012 at 5:43 PM, <S.Jenkins@lse.ac.uk> wrote: > Thank you, Stas! Your supposition explains the behaviour observed > (including why it worked ok on 12 July 2012). > > There were a load of temporary variables created in the process of > making my "voldat.dta" data set. But I had simply assumed that they > would have all disappeared when the data creation do file had > successfully completed. And they it turns out that they hadn't. They > weren't in my face as "voldat.dta" is large. > > The (non-elegant) code which creates the tempvars is: > > quietly { > forval t = 1/18 { > forval f = 0/1 { > tempvar temp1 > tempvar temp2 > tempvar temp3 > tempvar temp4 > > regress mwage1 A A2 A3 A4 if mwage1 > 0 & !missing(mwage1) & > wave == `t' & female == `f' > predict double `temp1' if e(sample), residuals > regress mwage1 A A2 A3 A4 [aw = xrwght] if mwage1 > 0 & > !missing(mwage1) & wave == `t' & female == `f' > predict double `temp2' if e(sample), residuals > > regress mwage2 A A2 A3 A4 if mwage2 > 0 & !missing(mwage2) & > wave == `t' & female == `f' > predict double `temp3' if e(sample), residuals > regress mwage2 A A2 A3 A4 [aw = xrwght] if mwage2 > 0 & > !missing(mwage2) & wave == `t' & female == `f' > predict double `temp4' if e(sample), residuals > > replace mwage1res_u = `temp1' if mwage1 > 0 & !missing(mwage1) & > wave == `t' & female == `f' > replace mwage1res_w = `temp2' if mwage1 > 0 & !missing(mwage1) & > wave == `t' & female == `f' > replace mwage2res_u = `temp3' if mwage2 > 0 & !missing(mwage2) & > wave == `t' & female == `f' > replace mwage2res_w = `temp4' if mwage2 > 0 & !missing(mwage2) & > wave == `t' & female == `f' > } > } > } > > I've now added a -drop __*- line after this section, and the temporary > variables are no longer retained in "voldat.dta". And the job with the > call to -idonepsu- now works again. > > I remain surprised that the tempvars weren't automatically deleted at > the end of the data creation job. > > ------------------------------------------------------------------------ > -------- > From Stas Kolenikov <skolenik@gmail.com> > To statalist@hsphsun2.harvard.edu > Subject Re: st: r(110) error with -svy-, -mark-, -marksample- > Date Tue, 31 Jul 2012 17:19:23 -0500 > > ------------------------------------------------------------------------ > -------- > > The most obvious explanation is that you do have that __000003 > variable present in your data set, for some strange reason (the data > set was saved while -tempvar- was created, but before it was cleaned > with an exit from a program). Sometimes, I do get something like that > with a complicated set of nested routines and some complicated > patterns of who creates and who cleans the -tempvar-s, although I > would expect that Stata would try to come up with the next available > -tempvar- name upon having checked that a variable already exists in > the data set. The conflict like that may also arise if you > deliberately drop a tempvar rather than let Stata do it. But it would > be strange if this error were in the official code. > > On Tue, Jul 31, 2012 at 4:59 PM, <S.Jenkins@lse.ac.uk> wrote: >> I am unable to run some -svy- related commands using one of my data >> sets. The puzzle is that I have no problems with similar commands >> applied to data from the Ref Manuals (cf. example below: uses >> "stage5a.dta"). >> >> The issue: after -svyset-, -svy: ...- commands produce a r(110) error >> >> [P] error . . . . . . . . . . . . . . . . . . . . . . . . Return >> code 110 >> __________ already defined; >> A variable or a value label has already been defined, and you >> attempted to redefine it. This occurs most often with > generate. >> >> But I had made no such attempt to redefine, as far as I know. With > -set >> trace on-, it seems that the command applied to my data is choking > when >> it makes a call to -marksample-. There's an example below: uses >> "voldat.dta". >> >> In another example (not shown), I had been using -idonepsu- (command > to >> deal with singleton PSUs; on SSC), and also hit the same error, though >> this time with a call to -mark- according to a -set trace on-. [Even >> more strangely (to me), I have a log file from a job also using >> -idonepsu and same data set, dated 6 Jul 2012, that ran without > error.] >> >> Any ideas? >> >> Stata 12MP/4, fully updated. Behaviour observed on Win7/64bit and Win >> XP/32bit >> . display "`c(tmpdir)'" >> C:\DOCUME~1\stephen\LOCALS~1\Temp/ > > > <snip> > > > Stephen > ------------------------------------- > Professor Stephen P. Jenkins <s.jenkins@lse.ac.uk> > Department of Social Policy > London School of Economics and Political Science > Houghton Street, London WC2A 2AE, U.K. > Tel: +44 (0)20 7955 6527 > Changing Fortunes: Income Mobility and Poverty Dynamics in Britain, OUP > 2011, http://ukcatalogue.oup.com/product/9780199226436.do > Survival Analysis using Stata: > http://www.iser.essex.ac.uk/survival-analysis > Downloadable papers and software: http://ideas.repec.org/e/pje7.html > > Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer > > * > * 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/ -- ---- Stas Kolenikov -- http://stas.kolenikov.name ---- Senior Survey Statistician, Abt SRBI -- Opinions stated in this email are mine only, and do not reflect the position of my employer * * 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/