The curve() function is being (overly?) clever in allowing nonstandard 
evaluation to let you specify an expression for the function argument. For 
integrate(), you need to go the standard way and set up an actual function of 1 
argument and pass that. It's not all that hard:

> f <- function(x) x*dnorm(x, mean=1.234)
> integrate(f, -Inf, Inf)
1.234 with absolute error < 3.1e-07

(In fact, reading the examples on the help page for integrate() might have 
gotten you there faster than writing for help...)

Notice, incidentally, that curve() also works with functions:

> curve(f, -2, 4)

-pd

On 21 Feb 2017, at 18:29 , C W <tmrs...@gmail.com> wrote:

> Dear R list,
> 
> I am having a little trouble understanding the R code. I want to compute
> expectation of normal pdf.
> 
> I did the following:
> 
> integrate(x*dnorm(x, rate=1), -Inf, Inf)
> Error in match.fun(f) : object 'x' not found
> 
> If I did this, I get,
> integrate(dexp(x, rate=1), -Inf, Inf)
> Error in dexp(x, rate = 1) : object 'x' not found
> 
> How should I fix this? I remember when I did it for curve(), it was fine.
> 
> curve(pexp(x, rate = 1/2), from = 0, to = 5)
> 
> What am I not getting here? Thank you so much!
> 
>       [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd....@cbs.dk  Priv: pda...@gmail.com

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to