hmmmm... mine crashes even if I place: debug(getS3method("coef<-","corSpatial"))
before the model run. Below is what R spits out after the seg fault. It's never the same twice. I hope someone else out there will try the code because I really do think this is more than an error. > mymodel <- lme(fixed = e ~ a,random= ~ 1 | g,data=df,correlation=corSPT(corExp(c(1,.5),form = ~ t | g,nugget=TRUE),corExp(c(1,.5),form= ~ x + y | g, nugget=TRUE)),control=list(msVerbose=TRUE,opt="nlminb")) 1 0.51 0.51 0.51 0.51 0.51 0.5 *** caught segfault *** address 0xe0000030, cause 'memory not mapped' Traceback: 1: FUN(X[[2L]], ...) 2: lapply(attr(object[["time"]], "covariate"), function(mat) (1 - time.nug) * exp(-mat/time.rng)) 3: corMatrix.corSPT(object) 4: corMatrix(object) 5: unlist(corMatrix(object)) 6: corFactor.corSPT(object) 7: corFactor(object) 8: `coef<-.corSPT`(`*tmp*`, value = c(0, 0, 1.49011611938477e-08)) 9: `coef<-`(`*tmp*`, value = c(0, 0, 1.49011611938477e-08)) 10: `coef<-.modelStruct`(`*tmp*`, value = c(0.360627924013365, 0, 0, 1.49011611938477e-08)) 11: `coef<-`(`*tmp*`, value = c(0.360627924013365, 0, 0, 1.49011611938477e-08)) 12: logLik.lmeStruct(lmeSt, lmePars) 13: logLik(lmeSt, lmePars) 14: objective(.par, ...) 15: .Call(R_port_nlminb, obj, grad, hess, rho, low, upp, d = rep(as.double(scale), length.out = length(par)), iv, v) 16: nlminb(c(coef(lmeSt)), function(lmePars) -logLik(lmeSt, lmePars), control = list(iter.max = controlvals$msMaxIter, eval.max = controlvals$msMaxEval, trace = controlvals$msVerbose)) 17: lme.formula(fixed = e ~ a, random = ~1 | g, data = df, correlation = corSPT(corExp(c(1, 0.5), form = ~t | g, nugget = TRUE), corExp(c(1, 0.5), form = ~x + y | g, nugget = TRUE)), control = list(msVerbose = TRUE, opt = "nlminb")) 18: lme(fixed = e ~ a, random = ~1 | g, data = df, correlation = corSPT(corExp(c(1, 0.5), form = ~t | g, nugget = TRUE), corExp(c(1, 0.5), form = ~x + y | g, nugget = TRUE)), control = list(msVerbose = TRUE, opt = "nlminb")) Possible actions: 1: abort (with core dump, if enabled) 2: normal R exit 3: exit R without saving workspace 4: exit R saving workspace 2010/4/23 Uwe Ligges <lig...@statistik.tu-dortmund.de> > When I try it, I do not get a crash but an error message: > > 1 0.5Error in `coef<-.corSpatial`(`*tmp*`, value = c(0, 0, 0)) : > Cannot change the length of the parameter after initialization > > Even trying several times I always get the error and cannot reproduce any > crash. > > Best wishes, > Uwe > > > > > On 22.04.2010 19:31, Michael Steven Rooney wrote: > >> Hi Uwe, >> >> I downloaded R 2.11.0 and the latest version of nlme. I am still getting >> the >> problem. I should also note that I got a message from Viechtbauer Wolfgang >> saying that he had experienced a similar problem using nlme. >> > > > >> I have pasted the code below. (The data is generated in the first ~15 >> lines). I have bunch of debug() statements, which may or may not be >> useful. >> The code is not as elegant as it could be since I have been constantly >> editing it to try to track down the bug (I replaced the corMatrix C >> routine >> with R code). FYI, the objective of the code is to simultaneously fit >> temporal and spatial correlation (adding one corExp matrix plus another) >> where the nuggets are constrained to add to 1. >> >> I really hope you have a chance to look at this. Thanks so much!! >> >> ## BEGIN >> >> N<- 100 >> x<- round(sin(rep(1:23/2,length.out=N)),digits=2)+1:N*2/N >> y<- round(cos(rep(1:23/2,length.out=N)),digits=2)+1:N*2/N >> g<- rep(1:5,each=N/5) >> a<- round(runif(N,0,10)) >> t<- 1:N >> r<- runif(N,0,5) >> e<- 5*sin(4*x) + >> 5*cos(4*y) + >> 5*sin(t) + >> 2*g + >> a + >> r >> e<- round(e) >> >> df<- data.frame(x,y,g,a,t,r,e) >> df<- df[-c(22,23,67),] >> >> library(nlme) >> >> corSPT<- function(a,b) { >> object<- list("time"=a,"space"=b) >> class(object)<- c("corSPT","corSpatial","corStruct") >> attr(object, "formula")<- formula(object) >> attr(object, "nugget")<- attr(object[["time"]], "nugget") >> attr(object, "metric")<- attr(object[["time"]], "metric") >> attr(object, "fixed")<- attr(object[["time"]], "fixed") >> return(object) >> } >> >> coef.corSPT<- function(object,...) { >> >> >> c("time"=coef(object[["time"]],...),"space"=coef(object[["space"]],...)[1]) >> } >> >> "coef<-.corSPT"<- function (object, ..., value) { >> value<- as.numeric(value) >> if (length(value) != 3) { >> stop("Cannot change the length of the parameter of a corSPT >> object") >> } >> object[["time"]][]<- value[1:2] >> object[["space"]][]<- c(value[3],-value[2]) # nugget for space is >> determined by the nugget for time >> attr(object, "factor")<- NULL >> attr(object, "factor")<- corFactor(object) >> attr(object, "logDet")<- NULL >> attr(object, "logDet")<- logDet(object) >> object >> } >> >> Initialize.corSPT<- function (object, data, ...) { >> if (!is.null(attr(object[["time"]], "minD"))) { >> return(object) >> } >> object[["time"]]<- >> getS3method("Initialize","corStruct")(object[["time"]], data) >> object[["space"]]<- >> getS3method("Initialize","corStruct")(object[["space"]], data) >> object[["time"]][1]<- log(object[["time"]][1]) >> object[["space"]][1]<- log(object[["space"]][1]) >> object[["time"]][2]<- log(object[["time"]][2]/(1 - >> object[["time"]][2])) >> object[["space"]][2]<- -object[["time"]][2] >> attr(object,"groups")<- attr(object[["time"]],"groups") >> attr(object,"Dim")<- attr(object[["time"]],"Dim") >> attr(object,"covariate")<- NULL >> attr(object, "nugget")<- attr(object[["time"]], "nugget") >> attr(object[["time"]],"minD")<- min(unlist(attr(object[["time"]], >> "covariate"))) >> attr(object[["space"]],"minD")<- min(unlist(attr(object[["space"]], >> "covariate"))) >> attr(object, "minD")<- NULL >> ### >> corD<- Dim(object[["time"]]) >> attr(object[["time"]],"covariate")<- lapply(seq(corD$M),function(M) { >> x<- attr(object[["time"]],"covariate")[[M]] >> l<- corD$len[M] >> g<- rep(seq(l),(l-1):0) >> mat<- do.call(rbind,lapply(seq(l),function(G) >> {c(rep(0,G),x[g==G])})) >> mat<- mat + t(mat) >> }) >> attr(object[["space"]],"covariate")<- lapply(seq(corD$M),function(M) { >> x<- attr(object[["space"]],"covariate")[[M]] >> l<- corD$len[M] >> g<- rep(seq(l),(l-1):0) >> mat<- do.call(rbind,lapply(seq(l),function(G) >> {c(rep(0,G),x[g==G])})) >> mat<- mat + t(mat) >> }) >> ### >> attr(object, "factor")<- corFactor(object) >> attr(object, "logDet")<- -attr(attr(object, "factor"), "logDet") >> object >> } >> >> corMatrix.corSPT<- function(object,covariate = NULL,corr=TRUE, ...) { >> if (corr) { >> temp<- coef(object[["time"]],unconstrained=FALSE) >> cat(temp) >> time.rng<- temp[1] >> time.nug<- temp[2] >> temp<- coef(object[["space"]],unconstrained=FALSE) >> space.rng<- temp[1] >> space.nug<- temp[2] >> cor.time<- lapply(attr(object[["time"]],"covariate"),function(mat) >> (1-time.nug)*exp(-mat/time.rng)) >> cor.space<- lapply(attr(object[["space"]],"covariate"),function(mat) >> (1-space.nug)*exp(-mat/space.rng)) >> x<- lapply(seq(length(cor.time)),function(mat) >> round(cor.time[[mat]]+cor.space[[mat]],4)) >> attr(x, "logDet")<- NULL >> } else { >> d<- Dim(object) >> gg<- rep(seq(d$M),each=d$len^2) >> cf<- corFactor(object) >> lD<- attr(cf, "logDet") >> x<- lapply(seq(d$M),function(mm) {mat<- cf[gg==mm]; >> matrix(mat,nrow=d$len[mm])}) >> attr(x,"logDet")<- lD >> } >> return(x) >> } >> >> corFactor.corSPT<- getS3method("corFactor","corStruct") >> logDet.corSPT<- getS3method("logDet","corStruct") >> recalc.corSPT<- getS3method("recalc","corStruct") >> >> formula.corSPT<- function(object,...) { >> a<- as.character(formula(object[["time"]])) >> b<- as.character(formula(object[["space"]])) >> a<- strsplit(a[2],split="|",fixed=TRUE)[[1]] >> b<- strsplit(b[2],split="|",fixed=TRUE)[[1]] >> as.formula(paste("~",a[1],"+",b[1],"|",a[2])) >> } >> >> Dim.corSPT<- function(object,...) { >> Dim(object[["time"]],...) >> } >> >> debug(corSPT) >> debug(getS3method("recalc","corSpatial")) >> debug(getS3method("recalc","corStruct")) >> debug(getS3method("Initialize","corSPT")) >> debug(getS3method("coef<-","corSPT")) >> debug(getS3method("coef","corSPT")) >> debug(getS3method("corFactor","corSPT")) >> debug(getS3method("logDet","corStruct")) >> debug(getS3method("logLik","lmeStruct")) >> debug(getS3method("recalc","modelStruct")) >> debug(getS3method("recalc","corStruct")) >> debug(getS3method("corMatrix","corSPT")) >> debug(getS3method("coef<-","reStruct")) >> debug(getS3method("coef<-","modelStruct")) >> debug(getS3method("corMatrix","corSpatial")) >> debug(getS3method("Initialize","corSpatial")) >> debug(getS3method("Initialize","corStruct")) >> >> mymodel<- lme(fixed = e ~ a,random= ~ 1 | >> g,data=df,correlation=corSPT(corExp(c(1,.5),form = ~ t | >> g,nugget=TRUE),corExp(c(1,.5),form= ~ x + y | g, >> nugget=TRUE)),control=list(msVerbose=TRUE,opt="nlminb")) >> >> ## End >> >> >> 2010/4/21 Uwe Ligges<lig...@statistik.tu-dortmund.de> >> >> >>> >>> On 21.04.2010 18:19, Michael Steven Rooney wrote: >>> >>> The R version is 2.9.2. >>>> >>>> >>> Please try with R-2.11.0 RC (release candidate) to be released tomorrow >>> as >>> well as a recent version of nlme. >>> >>> If its still fails, please send code (and data, if you do not generate >>> them >>> in the code) that reproduces the problem. >>> >>> Uwe Ligges >>> >>> >>> >>> >>> >>> nlme version is 3.1-93 >>> >>>> The OS is Windows XP. >>>> This is for my work computer but I get the same behavior at home using >>>> Vista. >>>> ---------- Forwarded message ---------- >>>> From: Sarah Goslee<sarah.gos...@gmail.com> >>>> Date: Wed, Apr 21, 2010 at 11:50 AM >>>> Subject: Re: [R] R crashing oddly >>>> To: Michael Steven Rooney<michael.s.roo...@gmail.com> >>>> >>>> >>>> You definitely need to provide the information requested in the posting >>>> guide, >>>> specifically OS, R version, package version (and update to the newest if >>>> you >>>> haven't yet). >>>> >>>> Sarah >>>> >>>> On Wed, Apr 21, 2010 at 11:41 AM, Michael Steven Rooney >>>> <michael.s.roo...@gmail.com> wrote: >>>> >>>> Hi, >>>>> >>>>> I am working with the package nlme, and I tried creating a new >>>>> correlation >>>>> class (which, according to the help pages, is possible if you write a >>>>> few >>>>> new method functions). Anyways, I think I am 99% of the way there, but >>>>> I >>>>> have a recurring problem with R crashing on seemingly innocuous >>>>> statements >>>>> (I have set debug() on nearly every function, so I can see where it is >>>>> failing). >>>>> >>>>> -- >>>>> >>>> Sarah Goslee >>>> http://www.functionaldiversity.org >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> 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<http://www.r-project.org/posting-guide.html> >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>>> >>> >> [[alternative HTML version deleted]] ______________________________________________ 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.