[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: qplot , over()
Nick Cox <email@example.com>
Re: st: qplot , over()
Sat, 24 Mar 2012 08:16:42 +0000
I think you meant
bysort foreign (mpg) :
Either way, the -egen- route is convenient because it does the right
thing with missing values.
More importantly, I agree with the broad point. We are often flipping
between two opposite truths:
1. A dedicated program does almost all the work for you, including
dealing with awkward details.
2. If you break down the problem into soluble sub-problems, you can
work out the problem yourself with a few lines of code.
On Fri, Mar 23, 2012 at 10:17 PM, Keith Dear <firstname.lastname@example.org> wrote:
> Thanks Nick, the new version does what I wanted.
> In passing -- while I agree it's not hard to DIY this, in fact this is
> a nice example of why it's better to use a provided (authorised)
> program when possible. Instead of your careful code, I would have
> . bys mpg (foreign): gen pp=(_n-0.5)/_N
> It took me some thought to see why you didn't do it that way (they
> give exactly the same result for the auto data).
> On 23 March 2012 23:53, Nick Cox <email@example.com> wrote:
>> By the way, a do-it-yourself approach is easier than might be thought
>> sysuse auto, clear
>> egen rank = rank(mpg), unique by(foreign)
>> egen n = count(mpg), by(foreign)
>> gen pp = (rank - 0.5 ) / n
>> separate mpg, by(foreign) veryshortlabel
>> scatter mpg? pp
>> SJ-7-2 gr0027 . . Stata tip 47: Quantile-quantile plots without programming
>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
>> Q2/07 SJ 7(2):275--279 (no commands)
>> tip on producing various quantile-quantile (Q-Q) plots
>> Note that this recipe is strong enough to cope with ties and missing
>> values and flexible in that you can insert your own definition of
>> plotting positions (-pp- above) if you don't like (i - 0.5) / n for
>> some reason.
>> On Fri, Mar 23, 2012 at 12:36 PM, Nick Cox <firstname.lastname@example.org> wrote:
>>> In revising -qplot- for SJ 10-4 I inadvertently introduced a bug in
>>> implementation of the -over()- option. I thought no one had noticed
>>> but me, but Keith has been bitten by it.
>>> The bug has already been fixed in a update due shortly in SJ 12-1. I
>>> will send Keith a copy of the revised files.
>>> On Fri, Mar 23, 2012 at 12:22 PM, Keith Dear <email@example.com> wrote:
>>>> How can I get several quantile plots in one diagram?
>>>> (There have been past threads on this, but I found no mention of what
>>>> I am getting.)
>>>> sysuse auto
>>>> replace mpg=mpg/2 if foreign // for greater separation
>>>> qplot mpg, by(foreign) // two distinct curves, which I would like
>>>> to plot together
>>>> qplot mpg, over(foreign) // points on a single curve, not what I expected
>>>> Am I misunderstanding the help file? It seems to imply that by() and
>>>> over() give the same set of curves, which is what I want but isn't
>>>> what happens:
>>>> ---- help qplot
>>>> by(varname[, suboptions]) specifies that calculations be carried out
>>>> separately for each distinct value of a
>>>> specified single variable. Results will be shown separately in
>>>> distinct panels. See [G] by_option.
>>>> over(varname) specifies that calculations be carried out separately
>>>> for each distinct value of a specified
>>>> single variable. Curves will be shown together within the
>>>> same panel. over() is only allowed with a single
>>>> -qplot- is by NJC out of -net install gr42_5.pkg-
* For searches and help try: