From p.dalgaard at biostat.ku.dk  Wed Oct 22 01:09:38 2003
From: p.dalgaard at biostat.ku.dk (Peter Dalgaard)
Date: Wed Oct 22 01:05:10 2003
Subject: [Rd] Subsetted 1-D arrays (PR#4110)
In-Reply-To: <16277.45678.55489.229526@arbres1a.fmr.com>
References: <16277.45678.55489.229526@arbres1a.fmr.com>
Message-ID: <x2ad7ugpcd.fsf@biostat.ku.dk>

David Brahm  <brahm@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@biostat.ku.dk)             FAX: (+45) 35327907


[Rd] Subsetted 1-D arrays (PR#4110)
Peter Dalgaard