From wdunlap at tibco.com  Thu Feb  4 00:49:29 2010
From: wdunlap at tibco.com (William Dunlap)
Date: Wed, 3 Feb 2010 15:49:29 -0800
Subject: [Rd] Proposal unary - operator for factors
In-Reply-To: <f8e6ff051002031538ub5c2892ya83806ad3fe025a0@mail.gmail.com>
References: <f8e6ff051002031510m4dca3c8co8d69c3117e1deab4@mail.gmail.com>
	<77EB52C6DD32BA4D87471DCD70C8D7000275B14F@NA-PA-VBE03.na.tibco.com>
	<f8e6ff051002031538ub5c2892ya83806ad3fe025a0@mail.gmail.com>
Message-ID: <77EB52C6DD32BA4D87471DCD70C8D7000275B165@NA-PA-VBE03.na.tibco.com>

> -----Original Message-----
> From: h.wickham at gmail.com [mailto:h.wickham at gmail.com] On 
> Behalf Of Hadley Wickham
> Sent: Wednesday, February 03, 2010 3:38 PM
> To: William Dunlap
> Cc: r-devel at r-project.org
> Subject: Re: [Rd] Proposal unary - operator for factors
> 
> > It wouldn't make sense in the context of
> > ? vector[-factor]
> 
> True, but that doesn't work currently so you wouldn't lose anything.
> However, it would make a certain class of problem that used to throw
> errors become silent.
> 
> > Wouldn't it be better to allow order's decreasing argument
> > to be a vector with one element per ... argument? ?That
> > would work for numbers, factors, dates, and anything
> > else. ?Currently order silently ignores decreasing[2] and
> > beyond.
> 
> The problem is you might want to do something like order(a, -b, c, -d)

Currently, for numeric a you can do either
   order(-a)
or
   order(a, decreasing=FALSE)
For nonnumeric types like POSIXct and factors only
the latter works.

Under my proposal your
   order(a, -b, c, d)
would be
   order(a, b, c, d, decreasing=c(FALSE,TRUE,FALSE,TRUE))
and it would work for any ordably class without modifications
to any classes.

Bill
 
> Hadley
> 
> -- 
> http://had.co.nz/
> 



[Rd] Proposal unary - operator for factors
William Dunlap