From jayemerson at gmail.com  Tue May  4 22:37:36 2010
From: jayemerson at gmail.com (Jay Emerson)
Date: Tue, 4 May 2010 16:37:36 -0400
Subject: [Rd] split() bug? Inconsistent Windows/Linux behavior.
Message-ID: <p2xd4588dec1005041337y8ad4926od55881987e5ec177@mail.gmail.com>

I didn't see anything on this in the bug reports, and a search of the
archives had lots of false positives when searching on "split" to be
helpful.

I don't view this as particularly interesting or useful, but wanted to
report it because I stumbled on it (and don't remember ever seeing
"invalid permissions" as part of a segfault).? Yes, I realize this is
a silly example that you wouldn't actually do, but... there may be
other more interesting cases with the same problem.? The following was
R-2.10.0 on Linux (with a Windows-64 2.11.0 difference to follow
below):

> data(iris)
> split(1:nrow(iris), list(iris[,1], iris[,2]))

?*** caught segfault ***
address 0x7fc806cd3d0c, cause 'invalid permissions'

Traceback:
?1: split.default(1:nrow(iris), list(iris[, 1], iris[, 2]))
?2: split(1:nrow(iris), list(iris[, 1], iris[, 2]))

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace

In contrast, R-2.11.0 in Windows-64:

> data(iris)
> split(1:nrow(iris), list(iris[,1], iris[,2]))

Traceback:
?1: split.default(1:nrow(iris), list(iris[, 1], iris[, 2]))
?2: split(1:nrow(iris), list(iris[, 1], iris[, 2]))
Error in split.default(1:nrow(iris), list(iris[, 1], iris[, 2])) :
? caught access violation - continue with care

However, the same commands with drop=TRUE returns something, though
the answers differ.? In Linux:

> a <- split(1:nrow(iris), list(iris[,1], iris[,2]), drop=TRUE)
> length(a)
[1] 116

And in Windows, differing only in the extra returned element, which I
don't think should probably be part of the answer (there are no
missing values in the iris data):

> a <- split(1:nrow(iris), list(iris[,1], iris[,2]), drop=TRUE)
> length(a)
[1] 117
> a[117]
$<NA>
[1] 16

--
John W. Emerson (Jay)
Associate Professor of Statistics
Department of Statistics
Yale University
http://www.stat.yale.edu/~jay



[Rd] split() bug? Inconsistent Windows/Linux behavior.
Jay Emerson