Entering edit mode
locfit is a package from CRAN for doing local regression (think
loess). It does not have a NAMESPACE, and it uses what to my casual
eyes look like a pretty standard model setup. But there is a strange
thing happening when IRanges is loaded. An example is best:
First get some data and define two functions that essentially does the
same:
library(locfit)
utils::data(anorexia, package = "MASS")
myData <- anorexia
tmp <- function(dat) {
anorex.1 <- glm(Postwt ~ lp(Prewt),
family = "gaussian", data = dat)
}
tmp1 <- function(dat1) {
tmp2 <- function(dat2) {
anorex.1 <- locfit(Postwt ~ lp(Prewt),
family = gaussian, data = dat2)
}
tmp2(dat2 = dat1)
}
tmp(myData)
tmp1(myData)
This works great. Now load IRanges and do the same
library(IRanges)
> tmp(myData)
Error in terms.formula(formula, data = data) :
'data' argument is of the wrong type
Enter a frame number, or 0 to exit
1: tmp(myData)
2: locfit(Postwt ~ lp(Prewt), family = "gaussian", data = dat)
3: eval(m, sys.frame(sys.parent()))
4: eval(m, sys.frame(sys.parent()))
5: eval(expr, envir, enclos)
6: model.frame(formula = Postwt ~ lp(Prewt), data = dat)
7: model.frame.default(formula = Postwt ~ lp(Prewt), data = dat)
8: terms(formula, data = data)
9: terms.formula(formula, data = data)
Selection: 0
> tmp1(myData)
Error in inherits(x, "data.frame") : object 'dat2' not found
Enter a frame number, or 0 to exit
1: tmp1(myData)
2: tmp2(dat2 = dat1)
3: locfit(Postwt ~ lp(Prewt), family = gaussian, data = dat2)
4: eval(m, sys.frame(sys.parent()))
5: eval(m, sys.frame(sys.parent()))
6: eval(expr, envir, enclos)
7: model.frame(formula = Postwt ~ lp(Prewt), data = dat2)
8: model.frame.default(formula = Postwt ~ lp(Prewt), data = dat2)
9: is.data.frame(data)
10: inherits(x, "data.frame")
Selection: 0
Clearly something seems wrong. The error messages for tmp and tmp1
are different. Perhaps the lacking NAMESPACE for locfit makes a
difference. And locfit sets up the design matrix using a slightly
different set of commands, that to my eye mostly look like an older
paradigm.
Any idea on what happens and why this is affected by IRanges?
Kasper