From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Fri 27 May 2005 - 11:15:09 EST

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

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
*