integrate() (PR#1755)

apjaworski@mmm.com apjaworski@mmm.com
Sun, 7 Jul 2002 20:54:18 -0500


I think people should read the documentation more carefully before sending
e-mail to R-bugs to make sure that they understand their problem correctly.
If in doubt, the problem should be reported to the R-help list.

I do not think there is anything wrong with integrate.  Here is a relevant
excerpt from the man page:

>      f: An R function taking a numeric first argument and returning a
>         numeric vector the same length. Returning a non-finite
>         element will generate an error.

This simply means that the function has to be properly vectorized.  Your
first example - the constant function - is not.  If you replaced it with
something like

      integrate(function(x) rep(1, length(x)), 0, 1)

integrate would work properly.

Your second function works correctly since x^2 returns a vector result of
the same length as x.  The last one is really strange.  I think integrate
should return an error message in this case.

Andy

__________________________________
Andy Jaworski
Engineering Systems Technology Center
3M Center, 518-1-01
St. Paul, MN 55144-1000
-----
E-mail: apjaworski@mmm.com
Tel:  (651) 733-6092
Fax:  (651) 736-3122


|---------+----------------------------->
|         |           tcporco@mathepi.co|
|         |           m                 |
|         |                             |
|         |           07/07/2002 19:32  |
|         |                             |
|---------+----------------------------->
  >-----------------------------------------------------------------------------------------------------------------------------|
  |                                                                                                                             |
  |      To:       r-devel@stat.math.ethz.ch                                                                                    |
  |      cc:       R-bugs@biostat.ku.dk                                                                                         |
  |        (bcc: Andrzej P. Jaworski/US-Corporate/3M/US)                                                                        |
  |      Subject:  integrate() (PR#1755)                                                                                        |
  >-----------------------------------------------------------------------------------------------------------------------------|





Full_Name: Travis Porco
Version: 1.5.1 (6/17/2002)
OS: Suse Linux 7.1
Submission from: (NULL) (66.81.124.235)


This happens:
> integrate(function(x)1,0,1)
Error in integrate(function(x) 1, 0, 1) : evaluation of function gave a
result
of wrong length
> integrate(function(x)x^2,0,1)
0.3333333 with absolute error < 3.7e-15
> integrate(function(x){cat(x);1},0,1)
0.5 0.01304674 0.9869533 0.06746832 0.9325317 0.1602952 0.8397048 0.2833023
0.7166977
 0.4255628 0.5744372 0.002171418 0.9978286 0.03492125 0.9650787 0.1095911
0.8904089
0.2186214 0.7813786 0.3528036 0.6471964Error in integrate(function(x){ :
evaluation of function gave a result of wrong length

This is clearly incorrect behavior.  I included case 2 to show that some
cases
are
working correctly.

Various other conditions produce the error message indicated.  Of course,
not
being able to
integrate a constant is not in itself the problem; rather, function(x)1
generates the
same error that occurs in the real problem I'm working on.

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-.-
r-devel mailing list -- Read
http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
_._._




-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._