andrea.tor...@apat.it wrote:
Dear all,
I have a problem with the integration of the following function.
Could you please give some suggestions?

Thank you very much!!!

y<-rnorm(n=100)

f<-function(x,xi,h){
 n<-length(xi)
 Ke<-c()
 for(t in 1:n) {
  Ke[t]<-dnorm((x-xi[t])/h)
 }
 fke<-sum(Ke)*(1/(n*h))
 fke<-fke^2
 return(fke)
}
integrate(f,-Inf,Inf,xi=y,h=0.32)


integrate expects to work on a function f that works on a vector of x values (rather than just a scalar x), hence you probably want (somewhat rewritten):

f <- function(x, xi, h){
 n <- length(xi)
 Ke <- dnorm((x - xi) / h)
 fke <- sum(Ke) * (1 / (n*h))
 return(fke^2)
}

f2 <- function(x,xi,h){
    sapply(x, f, xi = xi, h = h)
}

integrate(f2, -Inf, Inf, xi=y, h=0.32)



Uwe Ligges




I obtained this error:
  evaluation of function gave a result of wrong length
In addition: There were 50 or more warnings (use warnings() to see the first 50)
50: In Ke[t] <- dnorm((x - xi[t])/h) :
  number of items to replace is not a multiple of replacement length

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

Reply via email to