Carlos Nasher
2013-Aug-08 09:41 UTC
[R] Numercial evaluation of intgral with different bounds
Hello R helpers,
I'm struggling how to apply the integrate function to a data frame. Here is
an example of what I'm trying to do:
# Create data frame
x <- 0:4
tx <- 10:14
T <- 12:16
data <- data.frame(x=x, tx=tx, T=T)
# Parameter
alpha <- 10
beta <- 11
# Integral
integrand <- function(y){
(y+alpha)^-(r+data$x)*(y+beta^-(s+1))
}
Now I want to apply the integrate function to evaluate the integral for
each line of the data frame with tx as the lower and T as the upper bound.
The respektive values (and the values only) should be returned in a vector.
I want to avoid the use of a loop since the integral is part of a function
I want to optimize with optim and so speed is crucial. I tried to do this
by something like:
integral <- lapply(data$tx, integrate, f=integrand, upper=data$T)
integral2 <- sapply(integral, function(x){x[1]})
integral3 <- unlist(integral2, use.names=FALSE)
But this doesn't work properly. I'd glad if you have any hints how to
get
this done.
Many thanks and best regards,
Carlos
--
-----------------------------------------------------------------
Carlos Nasher
Buchenstr. 12
22299 Hamburg
tel: +49 (0)40 67952962
mobil: +49 (0)175 9386725
mail: carlos.nasher@gmail.com
[[alternative HTML version deleted]]