[R] Trouble embedding functions (e.g., deltaMethod) in other functions
PatGauthier
pgauthi1 at lakeheadu.ca
Fri Mar 22 12:28:56 CET 2013
Dear R community,
I've been writing simple functions for the past year and half and have come
across a similar problem several times. The execution of a function within
my own function produces NaN's or fails to execute as intended. My conundrum
is that I can execute the function outside of my function without error, so
it's difficult for me, as a novice functioneer, to figure out what's going
wrong.
Here's my example for deltaMethod():
t <- c(0.00000, 26.24551, 61.78180, 86.88254, 221.75480)
m <- c(48.591707, 15.655895, 12.284635, 5.758547, 0.000000)
dat <- data.frame(t = t, m = m)
m0 <- m[1]
t0 <- t[5]
nlls <- nls(m ~ (m0^(1/lambda) - (t * m0/t0)^(1/lambda))^lambda,
start = list(lambda = 1), data = dat)
xVal <- seq(0, t0, length = 10)
mod.SE <- list()
for(i in 1:length(xVal)){
z <- xVal[i]
mod.SE[[i]] <- deltaMethod(nlls, "(m0^(1/lambda) - (z *
m0/t0)^(1/lambda))^lambda")$SE
}
mod.SE
This code executes deltaMethod() flawlessly (NOTE: [[1]] and [[10]] are
supposed to be NaN's). However, my goal is to embed the deltaMethod inside
another function I'm writing. For brevity's sake, here's a very simple
example that produces the same problem.
deltaSE <- function(mod, x){
mod.SE <- list()
for(i in 1:length(xVal)){
z <- xVal[i]
mod.SE[[i]] <- deltaMethod(mod, "(m0^(1/lambda) - (z *
m0/t0)^(1/lambda))^lambda")$SE
}
mod.SE
}
deltaSE(nlls, xVal)
deltaMethod, when embedded in my deltaSE function produces only NaN's. When
I debug(deltaSE) and debug(deltaMethod), and then debug(deltaMethod.default)
once delta method is debugging within deltaSE, I can see that eval() is
producing a value of 0 for the estimate value of m. An m of 0 indeed would
produce an NaN. I'm just not sure why this function is performing
differently inside and outside my function.
Any help for a lowly functioneer would be great!
Patrick
--
View this message in context: http://r.789695.n4.nabble.com/Trouble-embedding-functions-e-g-deltaMethod-in-other-functions-tp4662178.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list