[Rd] Subsetted 1-D arrays (PR#4110)
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Wed Oct 22 01:09:38 MEST 2003
David Brahm <brahm at alum.mit.edu> writes:
> In R-patched_2003-10-20, subsetted 1-D arrays no longer get converted to
> vectors. The NEWS file documents this change, as an indirect result of bug
> report 4110. I just wanted to mention this can break code in some rather
> obscure ways, such as this toy example:
>
> R> x <- sort(tapply(1:8, rep(1:4,2), sum)) # Was vector, now is 1D array
> R> y <- matrix(1:4, 1,4) # 1x4 matrix
> R> x + y # Used to return a 1x4 matrix
> Error in x + y : non-conformable arrays
Without the sort() that was an error in 1.8.0 too. However, we've
found other surprises like
prop.trend.test(tt[1,], margin.table(tt,2))
which internally will pass a 1D array as weights to lm.
> I agree with the change, but I would beware that some puzzled users may not
> associate new "tapply problems" with this news item.
Yep. And I tend to agree that the original problem had to be fixed.
> Also, *should* you be able to add a (4) array to a (1,4) array?
...or to a (4,1) array? Currently the answer is clearly neither: if
both terms have dimensions, the dimensions must match. It is kind of
tempting though.
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-devel
mailing list