Did you read the help page for 'outer'? ?outer
It says 'FUN' is called with these two extended vectors as arguments. Therefore, it must be a vectorized function (or the name of one), expecting at least two arguments. I don't think your logl function is vectorized according to your summary of what you did. Pete Dorothy wrote: > Hello, > > I have simulated a set of data which i called "nir" (a vector). > > I have created a function "logl" which calculates the log-likelihood. > > logl is a function of 2 real parameters : "beta" and "zeta" (of length 1). > > This function works perfectly well when I try for example "logl(0.1,0.2)" > > Now if I try : > > "x=seq(0.1,0.5,by=10^(-1)) > y=seq(0.1,0.5,by=10^(-1)) > z=outer(x,y,logl)" > > I get an error. > > The problem seems to be that inside "logl", the following expression is > calculated : "sum( log( beta+(nir-1)*zeta ) )". So it is a vector > manipulation. The error tells me that "nir" is not the size of "zeta". Yet > usually it is no problem since "length(zeta)=1". > > When I replace "sum( log( beta+(nir-1)*zeta ) )" by a loop, I get no > mistake. But I think it slows down the program. > > Do you have an idea where the problem is ? > > Thank you very much. > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. ______________________________________________ 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.