Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: Re: -graph bar, over-: problem with string vars and quotes


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: Re: -graph bar, over-: problem with string vars and quotes
Date   Fri, 9 Feb 2007 17:38:48 -0000

This behaviour is also seen in Stata 9.2, so upgrading 
is not the answer. Whatever is going on is presumably
deep within -graph- because Friedrich seems
to be doing the right thing with compound double quotes
to get his double quotes into the data. Others have
suggested single quotes, but as Austin surmised there
is a work-around with -twoway bar-. The program that
is unofficial here is -labmask- from -labutil- on SSC. 
It maps the values of -make- to be value labels for -n-.

sysuse auto, clear
sort make
gen n = _n
replace make = `""AMC Concord""' if make == "AMC Concord"
replace make = `""AMC" Pacer"' if make == "AMC Pacer"
replace make = `"AMC "Spirit""' if make == "AMC Spirit"
graph hbar mpg if n<5, over(make)
more 
labmask n, values(make) 
twoway bar mpg n if n<5, barw(0.5) base(0) hor ///
yla(, valuelabel ang(h) notick) xla(0(5)22) yti("") ysc(reverse)

Nick 
n.j.cox@durham.ac.uk 

Friedrich Huebler
 
> A side effect of the broken label is that the position of adjacent
> labels is shifted. In the example below, with 24 bars, the label for
> the AMC Concord has moved up and is no longer next to the bar.
> 
> sysuse auto, clear
> sort make
> replace make = `""AMC Concord""' if make == "AMC Concord"
> replace make = `""AMC" Pacer"' if make == "AMC Pacer"
> replace make = `"AMC "Spirit""' if make == "AMC Spirit"
> graph hbar mpg if _n<25, over(make)
 
Friedrich Huebler 

> > I use Stata 8.2. My data contains long strings that sometimes begin
> > with quote marks. I use these string variables to define the groups
> > in -graph bar, over-. When the first word in a string is enclosed
> > in
> > quote marks, the quotes disappear from the labels and the labels
> > themselves are broken up into more than one line. The effect can be
> > reproduced with the auto data.
> > 
> > sysuse auto, clear
> > sort make
> > gen n = _n
> > replace make = `""AMC Concord""' if make == "AMC Concord"
> > replace make = `""AMC" Pacer"' if make == "AMC Pacer"
> > replace make = `"AMC "Spirit""' if make == "AMC Spirit"
> > graph hbar mpg if n<5, over(make)
> > 
> > The AMC Pacer label should have quotes around "AMC". Instead, the
> > quotes are gone and the words AMC and Pacer are in two separate
> > lines. The labels for AMC Concord and AMC Spirit are drawn as
> > expected. Because of the nature of my data the labels should be
> > written in one line and with all quote marks. How can this be
> > accomplished?

*
*   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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index