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 <ligges@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<ligges@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.goslee@gmail.com>
>>>> Date: Wed, Apr 21, 2010 at 11:50 AM
>>>> Subject: Re: [R] R crashing oddly
>>>> To: Michael Steven Rooney<michael.s.rooney@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.rooney@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]]

