Re: [R] define matrix by outer?

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Fri 27 May 2005 - 11:15:09 EST

On 5/26/05, Zhen Pang <nusbj@hotmail.com> wrote:
> Dear all,
>
> I'd like to define a k by k matrix where the element is defined by
>
> mn<-function(m,n) sum(choose(m,(m-0:m))*choose((k-m),(n-m+0:m)))
>
> the mn function works fine for scalar m and n, however, it fails to define
> the matrix by outer.
>
> a<-outer(1:k,1:k,mn)
>
> gives error message:
>
> Error in outer(1:k, 1:k, mn) : dim<- : dims [product 64] do not match the
> length of object [1]
> In addition: Warning messages:
> 1: Numerical expression has 64 elements: only the first used in: 0:m
> 2: Numerical expression has 64 elements: only the first used in: 0:m
>
> I can define this matrix by loop or some apply function, however, the outer
> function should be the most straitforward way. How to deal with it? Thanks.
>

Check out ?outer where it mentions that the function must be able to handle vector arguments. Yours does not but you can transform it to one which does using mapply:

outer(1:k, 1:k, function(x,y) mapply(mn, x, y))



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri May 27 11:20:41 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:08 EST