[Rd] [R] unvectorized option for outer()

Peter Dalgaard p.dalgaard at biostat.ku.dk
Sun Oct 30 23:19:43 CET 2005


Thomas Lumley <tlumley at u.washington.edu> writes:

> On Sun, 30 Oct 2005, Jonathan Rougier wrote:
> 
> > I'm not sure about this.  Perhaps I am a dinosaur, but my feeling is
> > that if people are writing functions in R that might be subject to
> > simple operations like outer products, then they ought to be writing
> > vectorised functions!
> 
> I would agree.  How about an oapply() function that does multiway (rather 
> than just two-way) outer products.  Basing the name on "apply" would 
> emphasize the similarity to other flexible, not particularly optimized 
> second-order functions.

In fairness, it should probably be said that not all problems
vectorize naturally. One example is

  ssd <- function(A,alpha) sum((Y - A*exp(-alpha*t))^2)

However, it should be worth noting that with the mapply() function at
hand, it is pretty easy to turn a non-vectorized function into a
vectorized one. 

  SSD <- function(A,alpha) mapply(ssd, A, alpha)

(Anybody want to try their hand on writing a general Vectorize()
function? I.e. one that allowed

   outer(Avec, alphavec, Vectorize(ssd))

to work.)
-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-devel mailing list