Dr. Martyn Sherriff
> This loops correctly over i, but in the data set the
> variable code takes the
> values 96,137(1). I need to print out the code for
> reference only but it
> does not change from the initial value if 96. What should I
> do to modify the
> program? Can I write the "displayed" variables directly to
> an output file?
>
> set more off
> forvalues i=1/294{
> integ volume rtime if id==`i', gen(Sv)
> display code `i' " r(integral)
> drop Sv
> }
> set more on
I am not sure I understand what you want but
. display code `i'
will always be interpreted as if you
were saying
. display code[1] `i'
In essence, the -display- statement has no
way of knowing that you consider a particular
value of -code- to be the current value. -display-
arbitrarily choose the first value of a variable
if none is specified.
What's more, there will be no
space between the two items printed.
It sounds as if you want something more
like
forval i = 1/294 {
qui integ volume rtime if id == `i'
display code[`i'] " " r(integral)
}
where I have omitted generating an optional
variable only to -drop- it a moment later.
If you shut up -integ-, you can just
collate the results within a log. There
are other ways to do it, e.g. -file-.
Nick
[email protected]
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/