From P.Dalgaard at biostat.ku.dk  Fri Feb  5 16:41:08 2010
From: P.Dalgaard at biostat.ku.dk (Peter Dalgaard)
Date: Fri, 05 Feb 2010 16:41:08 +0100
Subject: [Rd] Why is there no c.factor?
In-Reply-To: <f8e6ff051002050643gf9335cfia7d39f9c0c7f3583@mail.gmail.com>
References: <f8e6ff051002040753x33282f33l78fce9f98dc29ae8@mail.gmail.com>
	<alpine.LRH.2.01.1002040906470.14023@hymn34.u.washington.edu>
	<007201caa5bf$93018f50$b904adf0$@ca>	<f8e6ff051002041003v41927bd4s56b8a8d42cc63953@mail.gmail.com>
	<f8e6ff051002050643gf9335cfia7d39f9c0c7f3583@mail.gmail.com>
Message-ID: <4B6C3C14.5060700@biostat.ku.dk>

Hadley Wickham wrote:
> On Thu, Feb 4, 2010 at 12:03 PM, Hadley Wickham <hadley at rice.edu> wrote:
>>> I'd propose the following: If the sets of levels of all arguments are the
>>> same, then c.factor() would return a factor with the common set of levels;
>>> if the sets of levels differ, then, as Hadley suggests, the level-set of the
>>> result would be the union of sets of levels of the arguments, but a warning
>>> would be issued.
>> I like this compromise (as long as there was an argument to suppress
>> the warning)
> 
> If I provided code to do this, along with the warnings for ordered
> factors and using the optimisation suggested by Matthew, is there any
> member of R core would be interested in sponsoring it?
> 
> Hadley
> 

Messing with c() is a bit unattractive (I'm not too happy with the other
c methods either; normally c() strips attributes and reduces to the base
class, and those obviously do not), but a more general concat() function
has been suggested a number of times. With a suitable range of methods,
this could also be used to reimplement rbind.data.frame (which,
incidentally, already contains a method for concatenating factors, with
several ugly warts!)

-- 
   O__  ---- Peter Dalgaard             ?ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907



[Rd] Why is there no c.factor?
Peter Dalgaard