[Rd] merge bug fix in R 2.15.0

Steve Lianoglou mailinglist.honeypot at gmail.com
Sun Mar 18 20:48:30 CET 2012

Hi Uwe,

2012/3/17 Uwe Ligges <ligges at statistik.tu-dortmund.de>:
> On 15.03.2012 22:48, Matthew Dowle wrote:
>> Anyone?
>>> Is it intended that the first suffix can no longer be blank? Seems to be
>>> caused by a bug fix to merge in R 2.15.0.
> Right, the user is now protected against confusing himself by using names
> that were not unique before the merge.

... now I'm confused :-)

If the user explicitly asks for a NULL/0/empty/whatever suffix,
they're not really going to be confusing themselves, right?

I actually feel like I do this often, where "this" is explicitly
asking to not add a suffix to one group of columns ... I do confuse
myself every and now and again, but not in this context, yet.

I can see that *this* confusing case is now handled w/ this change
(which wasn't before):

## I'm using R-devel compiled back in November, 2011 (r57571)
R> d1 <- data.frame(a=letters[1:10], b=rnorm(10), b.x=tail(letters, 10))
R> d2 <- data.frame(a=letters[1:10], b=101:110)
R> merge(d1, d2, by='a', suffixes=c('.x', '.y'))
   a         b.x b.x b.y
1  a -1.52250626   q 101
2  b -0.99865341   r 102
... ## Let's call this "exhibit A"

But if I do this:
R> merge(d1, d2, by='a', suffixes=c("", ".y"))

I totally expect:

   a           b b.x b.y
1  a -1.52250626   q 101
2  b -0.99865341   r 102
## Let's call this "exhibit B"

and not (using R-2.15.0 beta) (exhibit B):

Error in merge.data.frame(d1, d2, by = "a", suffixes = c("", ".y")) :
  there is already a column named 'b'

I can take a crack at a patch to keep the "rescue user from surprises"
example outlined in "exhibit A," but also letting user accomplish
"exhibit B" if there is a consensus of agreement on this particular
world view.


Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact

More information about the R-devel mailing list