Unfortunately, it is possible to say why this doesn't work. When Stata sees any references to local macros in commands, it substitutes them immediately with their contents and then tries to execute the command. That applies too to references of form
`= <some calculation>'. In short, that is done once only. Thus there is no way that what you want will be done separately according to the distinct values of a variable specified in a -by()- option.
Nor can I think of a neat way to do this in Stata 7, or even Stata 10. I guess you need to produce individual graphs, and then combine them. -forval- or -foreach- would help.
Nick
[email protected]
Achille M. Luongo
I would like to draw a histogram with two vertical lines showing
upper and lower estimates of a statistic for two (or more) groups using
the graph command of Stata 7.0.
This is a snippet of the
example dataset:
grp������
stat�����������
lower_es�����������
upper_es
1���������
91�����������
43.45387�����������
60.79625
1���������
60�����������
43.45387�����������
60.79625
1���������
87�����������
43.45387�����������
60.79625
1���������
52�����������
43.45387�����������
60.79625
[..removed..]
2���������
100�����������
79.70421�����������
124.2349
2���������
60�����������
79.70421�����������
124.2349
2���������
77�����������
79.70421�����������
124.2349
2���������
125�����������
79.70421�����������
124.2349
[..removed..]
I have already read the existing
post at http://www.stata.com/statalist/archive/2003-08/msg00282.html about
a similar topic.
Nevertheless, I can’t figure out how to
draw upper and lower estimates with ‘xline()’ option when the
‘graph’ command is combined with the ‘by’ option
like that:
��� graph stat, by(grp)
xline(`=lower_es[_n]' `= upper_es[_n]')
In fact, the graph
command always draw vertical lines in the same position in all the
histograms combined with the by option (I suppose it always draws
lower_es[1] and upper_es[1]).
I considered the possibility to
create histograms using the ‘by’ clausole like that:
��� by grp: graph stat, xline(`=lb[_n]' `=ub[_n]') xlab(0
20 to 140)
but I obtained the the same previous result.
*
* 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/