On 01-05-2014, at 08:44, Marc Girondot <marc_...@yahoo.fr> wrote: > Dear list-members, > > Can someone explains me why the last command gives an error. Thanks a lot: > > outer(0:1, 0:1, FUN=function(x, y) {x+y}) > [,1] [,2] > [1,] 0 1 > [2,] 1 2 > > outer(0:1, 0:1, FUN=function(x, y) {x}) > [,1] [,2] > [1,] 0 0 > [2,] 1 1 > > outer(0:1, 0:1, FUN=function(x, y) {1}) > Erreur dans outer(0:1, 0:1, FUN = function(x, y) { : > dims [produit 4] ne correspond pas à la longueur de l'objet [1] > > Of course I simplify a lot my problem.
As the documentation for outer says the function arguments x and y are vectors not scalars. Try this to see that outer(0:1, 0:1, FUN=function(x, y) {print(x);x}) outer(0:1, 0:1, FUN=function(x, y) {print(x);print(y);x}) You are returning a scalar whereas outer expects the function to return a vector of the correct length. A possible solution would be outer(0:1, 0:1, FUN=function(x, y) {1+0*x}) outer(0:1, 0:1, FUN=function(x, y) {rep(1,length(x))}) Berend ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.