Using Stata dynamic tags in a text file with the -dyntext- command
==================================================================
Let us consider an example where we study the -mpg- and -weight- variables in
-auto.dta-. In our examples below, we will first write the commands so that
they will be displayed in our output text file. Then, we will write the
commands so that Stata will process the Stata dynamic tags, displaying the
results of the Stata commands in the output text file.
We first use the -sysuse- command to load the dataset and then describe
the data using the -describe- command.
<>
sysuse auto, clear
describe
<>
This produces the following Stata results:
. sysuse auto, clear
(1978 Automobile Data)
. describe
Contains data from /usr/local/stata15/ado/base/a/auto.dta
obs: 74 1978 Automobile Data
vars: 12 13 Apr 2016 17:45
size: 3,182 (_dta has notes)
--------------------------------------------------------------------------------
storage display value
variable name type format label variable label
--------------------------------------------------------------------------------
make str18 %-18s Make and Model
price int %8.0gc Price
mpg int %8.0g Mileage (mpg)
rep78 int %8.0g Repair Record 1978
headroom float %6.1f Headroom (in.)
trunk int %8.0g Trunk space (cu. ft.)
weight int %8.0gc Weight (lbs.)
length int %8.0g Length (in.)
turn int %8.0g Turn Circle (ft.)
displacement int %8.0g Displacement (cu. in.)
gear_ratio float %6.2f Gear Ratio
foreign byte %8.0g origin Car type
--------------------------------------------------------------------------------
Sorted by: foreign
Now, we want to check if -mpg- is always greater than 0 and less than 100.
We use the -assert- command to perform the check. In this case, we do not
want to include any output in the output text file, so we use the -quietly-
attribute to modify the behavior of the -dd_do- Stata dynamic tag.
<>
assert mpg > 0 & mpg < 100
<>
If the data do not satisfy the conditions, -dyntext- will fail with an error
message, which will occur if we run the same -assert- command in a do-file.
Next, we want to summarize the -weight- variable:
<>
summarize weight
<>
This produces the following in the output text file:
. summarize weight
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
weight | 74 3019.459 777.1936 1760 4840
We want to use the minimum and maximum values of -weight- in a sentence.
Instead of copying and pasting the numbers from the -summarize- output, we can
use the -dd_display- Stata dynamic tag with the -r(min)- and -r(max)-
stored results
The variable weight has minimum value <> and
has maximum value <>.
which produces the following in the output text file:
> The variable weight has minimum value 1760.00
and has maximum value 4840.00.
The -dd_display- dynamic tag uses Stata's -display- command to evaluate
expressions. It can be used as a calculator. For example, if we want to
include the range = max - min in a sentence, instead of calculating the
number and then copying and pasting it, we can use
The variable weight has range <>.
which produces the following in the output text file:
> The variable weight has range 3080.00.