points(*, pch=NA) does *not* not draw the point (PR#6876)
On Wed, 12 May 2004, Martin Maechler wrote:
"BDR" == Prof Brian Ripley <ripley@stats.ox.ac.uk>
on Wed, 12 May 2004 15:20:56 +0100 (BST) writes:
BDR> On Wed, 12 May 2004 maechler@stat.math.ethz.ch wrote:
>> We say in ?points that 'pch' (among others) can be set to
>> NA for omitting a point.
BDR> I don't think we actually do. We say
BDR> Points whose 'x', 'y', 'pch', 'col' or 'cex' value
BDR> is 'NA' are omitted from the plot.
BDR> and earlier
BDR> either be a 'character' or an integer code
BDR> I read that to mean that as.logical(NA) is incorrect,
BDR> but that as.character(NA) is correct and should result
BDR> in the point being omitted.
BDR> In short, I disagree as to which is a very strict bug
BDR> (although it makes sense to allow logical NAs, of
BDR> course).
You're right, with both statements.
BDR> The problems are both in FixupPch in src/main/plot.c.
BDR> Can I leave you to fix both?
yes, I've been in there anyway.
There's one remaining design decision:
At the moment I'd go to allow 'logical' and coerce that to
integer (as in many other S code places).
Alternatively, more strict behavior would only allow NA logicals
and give an error for TRUE or FALSE entries in pch vectors.
I currently think it's not worth the extra check.
Here it probably makes more sense to coerce to character, and given the ambiguity I would allow only an all-NA logical vector. Brian
Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595