[R] vector manipulations

Erik Iverson
2008-03-04T17:44:58Z

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 at 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.