Error in dimnames(x) <- dn :

posts related to the RMark library, which may not be of general interest to users of 'classic' MARK

Error in dimnames(x) <- dn :

Postby amandarg » Sat Nov 12, 2011 1:55 pm

I have used the same script (except for changes in interval lengths) for three other data sets without a problem. Unfortunately for my last encounter history I need to run I am encountering this error:

Error in dimnames(x) <- dn :
length of 'dimnames' [1] not equal to array extent


I've double checked my interval lengths and code and kind find any inconsistencies with my previously successful runs on other encounter histories.

Any ideas?

thanks
Amanda
amandarg
 
Posts: 24
Joined: Sun Nov 07, 2010 4:27 pm

Re: Error in dimnames(x) <- dn :

Postby amandarg » Sun Nov 13, 2011 2:39 pm

Jeff, here's my code

Code: Select all
#RMark analysis
#Load RMark package
library(RMark);
rm(list=ls())
cleanup(ask=FALSE)

#inport .inp
sandadults=convert.inp("C:/R_robust/inpfiles/sand_final.inp",
group.df=data.frame(sex=c("Male", "Female")))

#Process the data so models can be analyzed
#Time intervals for 4 primary occasions (300+ collectors)
#use the format from MARK where you put in the x/60 for time intervals
time=c(0,0,0,0,0,0,.633,0,0,0,0,4.45,0,0,0,0,0,0,0,0,0,0,0,0,0)
sandadults.proc=process.data(sandadults,model="RDFullHet",time.intervals=time,
groups="sex")
summary(sandadults.proc)

sandadults.robust.run=function()
{

#Create the design data
sandadults.ddl=make.design.data(sandadults.proc)

#Create parameter specifications for formulas
S.dot=list(formula=~1)
S.group=list(formula=~group)
S.time=list(formula=~time)
S.grpbytime=list(formula=~group*time)
S.grpplustime=list(formula=~group+time)

# "No Emigration" - set Gamma'' = Gamma' = zero
GammaDoublePrime.GammaPrime.nomove=list(GammaDoublePrime=list(formula=~1,fixed=0,share=TRUE))
GammaDoublePrime.GammaPrime.nomove=list(GammaDoublePrime=list(formula=~1,fixed=0), GammaPrime=list(formula=~1,fixed=0))

#+c, share=true means that the recapture (c) will look like p but not be the exact same (will be equivalent of an m(b)).
p.dot=list(formula=~1+c,share=TRUE)
p.group=list(formula=~group+c,share=TRUE)

#mixture+c means that there are 2 mixtures (pi will be one half and 1-pi equals other half) and m(b) between p and c, so p does not equal c).
p.mixture=list(formula=~mixture+c,share=TRUE)

#m(b)
p.dotsession=list(formula=~session+c,share=TRUE)

#m(t)
p.time=list(formula=~time,share=TRUE)

#m(t*g)
#p.time.group=list(formula=~time*group,share=TRUE)

#m(t+g)
#p.timeplusgroup=list(formula=~time+group,share=TRUE)


p.dot.c=list(formula=~1,share=TRUE)
p.group.c=list(formula=~group,share=TRUE)
p.mixture.c=list(formula=~mixture,share=TRUE)

#p will be different ever session and c=p for each session
p.dotsession.c=list(formula=~session,share=TRUE)

#m(bh) diff each primary period
p.mixturesession=list(formula=~session:mixture+c,share=TRUE)

#m(h) diff each primary period
p.mixturesession.c=list(formula=~session:mixture,share=TRUE)

#p.time.c=list(formula=~time,share=TRUE)
#p.timegroup.c=list(formula=~time*group,share=TRUE)
#p.timeplusgroup.c=list(formula=~time+group,share=TRUE)
#p.timemixture.c=list(formula=~time+mixture,share=TRUE)
#p.timemixturegroup.c=list(formula=~group*time+mixture,share=TRUE)

#m(t) different each primary period
p.dottimesession.c=list(formula=~session:time,share=TRUE)

#m(g) diff each primary period
p.dotgroup.c=list(formula=~session:group,share=TRUE)

#m(t*g) diff each primary period
p.timegroup.c=list(formula=~session:time*group,share=TRUE)

#m(t+g) diff each primary period
p.timeplusgroup.c=list(formula=~session:time+group,share=TRUE)

#m(th) diff each primary period
#p.timemixturesessionc=list(formula=~session:time+mixture,share=TRUE)

#m(h*t) diff each primary period
#p.timemixturesessionc=list(formula=~session:time*mixture,share=TRUE)

#I never use the c's as I program everything through the p's as I always want p and c to have the same shape for my data (m(bh), m(h), m(b), m(t), m(th)).
#c.dot=list(formula=~1)
#c.time=list(formula=~time)
#c.group=list(formula=~group)
#c.time.group=list(formula=~time*group)
#c.timeplusgroup=list(formula=~time+group)
#c.dotsession=list(formula=~session)
#c.mixture=list(formula=~mixture)
#c.share=list(formula=~p)

#pi.dot=list(formula=~1)
#pi.group=list(formula=~group)
pi.session=list(formula=~session)
#no heterogeneity
pi.none=list(formula=~1, fixed=1)
pi.groupsession=list(formula=~session*group)

N.dot=list(formula=~1)
N.group=list(formula=~group)
N.session=list(formula=~session)
N.grpbysession=list(formula=~group*session)


# create model list
cml=create.model.list("RDFullHet")
#row.names(cml)=c(1:length(cml$p))

# run and return models
results=mark.wrapper(cml,data=sandadults.proc,ddl=sandadults.ddl,adjust=TRUE)
return(results)
}

robust.results=sandadults.robust.run()
robust.results

results.table=robust.results$model.table

export.MARK(sandadults.proc, project.name="sandtrial", robust.results,
replace=TRUE)


amandarg
 
Posts: 24
Joined: Sun Nov 07, 2010 4:27 pm


Return to RMark

Who is online

Users browsing this forum: No registered users and 1 guest