>>>>> William Dunlap <wdun...@tibco.com> >>>>> on Thu, 11 Oct 2012 18:59:52 +0000 writes:
> Should simplify2array(higher=TRUE) treat 1 by 1 matrices differently than others? > I expected a 3-dimensional array from all of the following 3 examples, not just the last 2. >> str(simplify2array(list(array(11,c(1,1)), array(21,c(1,1))), higher=TRUE)) > num [1:2] 11 21 >> str(simplify2array(list(array(11:13,c(3,1)), array(21:23,c(3,1))), higher=TRUE)) > int [1:3, 1, 1:2] 11 12 13 21 22 23 >> str(simplify2array(list(array(11:13,c(1,3)), array(21:23,c(1,3))), higher=TRUE)) > int [1, 1:3, 1:2] 11 12 13 21 22 23 I wrote simplify2array() in order to modularize sapply() and have mapply() and sapply() behave identically and because its utility seemed useful in at least on other case. In the mean time it is also used in the parallel package's *apply() functions. The distinction of 1 x 1 vs n x n for n >= 2 i.e., if (common.len == 1L) unlist(answer, recursive = FALSE) else if (common.len > 1L) array(unlist(answer, recursive = FALSE), dim = c(common.len, ....... ....... ) had really been part of sapply() at the time and hence needed to go into simplify2array() in order to keep sapply() completely back compatible. Bill, have you looked into optional different behavior? Martin Maechler, ETH Zurich > Bill Dunlap > Spotfire, TIBCO Software > wdunlap tibco.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel