Entering edit mode
On Jan 29, 2010, at 16:11 PM, Michael Lawrence wrote:
> c behaviour
> =========
>
> It seems to behave strangely in connection with do.call and a named
list:
>
> ir = IRanges(start = 1:3, end = 2:4)
> do.call(c, list(ir, ir)) ## What I expect, a single IRange with 6
entries.
> do.call(c, list(ir1 = ir, ir2 = ir)) ## This I don't get
>
> $ir1
> IRanges of length 3
> start end width
> [1] 1 2 2
> [2] 2 3 2
> [3] 3 4 2
>
> $ir2
> IRanges of length 3
> start end width
> [1] 1 2 2
> [2] 2 3 2
> [3] 3 4 2
>
> My guess is that this is something with c and method dispatching and
do.call.
>
>
> Yes, it is known that there is strange behavior here. The
combination of dispatching on a .Primitive and the "..." signature
pushes things a bit too far.
What I don't get is why this works when the list has no names and why
it fails with a named list. This is potentially dangerous behavior.
Kasper