[R] using "integrate" in a function definition
theo borm
theo.borm at wur.nl
Fri Feb 23 22:36:55 CET 2007
Ravi Varadhan wrote:
>Your function "jjj" is not vectorized.
>
>Try this:
>
>jjj <- function(www) sapply(www, function(x)2*integrate(dnorm,0,x)$value)
>plot(jjj, 0, 5)
>
>It should work.
>
>
Yes it does. Thanks!
Thinking of it, it now starts to make some sort of sense that integrate
should return a "scalar"; the result is really a list of which I only
used the "value" component. And now I also understand the "x,q: vector
of quantiles." phrases in the documentation of dnorm.
Now if I do something silly:
> jjj<-function(www) {2*integrate(dnorm,0,www)$value+sin(www)-sin(www)}
then
> jjj(1:5)
[1] 0.6826895 0.6826895 0.6826895 0.6826895 0.6826895
Evidently the "inherritance" of "being vectorized" (which was why my kkk
function worked) could lead to some unexpected (and probably hard to
debug) results :-/
Thanks.
with kind regards,
Theo.
More information about the R-help
mailing list