11.07.2015 Views

[U] User's Guide

[U] User's Guide

[U] User's Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

228 [ U ] 18 Programming Stata18.7.3 Temporary filesIn cases where you ordinarily might think you need temporary files, you may not because ofStata’s ability to preserve and automatically restore the data in memory; see [U] 18.6 Temporarilydestroying the data in memory above.For more complicated programs, Stata does provide temporary files. A code fragment might readpreserve /* save original data */tempfile males femaleskeep if sex==1save "‘males’"restore, preserve /* get back original data */keep if sex==0save "‘females’"As with temporary variables, scalars, and matrices, it is not necessary to delete the temporary fileswhen you are through with them; Stata automatically erases them when your program ends.18.8 Accessing results calculated by other programsStata commands that report results also save the results where they can be subsequently usedby other commands or programs. This is documented in the Saved results section of the particularcommand in the reference manuals. Commands save results in one of three places:1. r-class commands, such as summarize, save their results in r(); most commands are r-class.2. e-class commands, such as regress, save their results in e(); e-class commands are Stata’smodel estimation commands.3. s-class commands (there are no good examples) save their results in s(); this is a rarely usedclass that programmers sometimes find useful to help parse input.Commands that do not save results are called n-class commands. More correctly, these commandsrequire that you state where the result is to be saved, as in generate newvar = . . . .Example 1You wish to write a program to calculate the standard error of the mean, which is given by theformula √ s 2 /n, where s 2 is the calculated variance. (You could obtain this statistic by using the cicommand, but we will pretend that is not true.) You look at [R] summarize and learn that the meanis stored in r(mean), the variance in r(Var), and the number of observations in r(N). With thatknowledge, you write the following program:program meansequietly summarize ‘1’display " mean = " r(mean)display "SE of mean = " sqrt(r(Var)/r(N))endThe result of executing this program is. meanse mpgmean = 21.297297SE of mean = .67255109

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!