[ADMB Users] running admb from R using system()
Mark Maunder
mmaunder at iattc.org
Mon May 31 10:37:00 PDT 2010
Here is the whole code if you want the see the details
lwmreg.admb<-function(x,y,rtype="regression",ams=1000000,gbs=100000000,c
bs=100000000,maxfn=500,thetaphz=1,thetainit=1,exedr)
{
#Modified from glmm.admb orignially written by Hans Julius Skaug
#written by Mark maunder
#need to put executable file in the working directory
#This needs to be a directory with no spaces in the name
#for example c:\test\
#use this command to set working directory setwd("C:/test")
ams<-as.integer(ams)
gbs<-as.integer(gbs)
cbs<-as.integer(cbs)
nn <- nrow(x)
p <- ncol(x)
if (!(nn == length(y)))
stop("x and y not same length")
if (missing(exedr) )
stop("Need to give directory for execuitable")
if (!file.exists(paste(exedr,"lwmreg.exe",sep="")))
stop("Cant find execuitable")
cmdoptions = paste("-maxfn",maxfn,"-ams",ams,"-gbs",gbs,"-cbs",cbs)
file_name = "lwmreg"
if(p==1) phz<--1
else phz<-c(-1,rep(1,p-1))
if(rtype=="regression") rt<-1
else
{
if (rtype=="average") rt<-0
else stop("rtype= regression or average")
}
dat_list = list(rtype = rt, p = p,phz=phz, thetaphz=thetaphz, n =
nn,x = x, y = y)
pin_list = list(theta=thetainit,lnlambda=rep(0,p))
dat_write(file_name, dat_list)
pin_write(file_name, pin_list)
std_file = paste(file_name, ".std", sep = "")
file.remove(std_file)
if (.Platform$OS.type == "windows") {
shell(paste(exedr, file_name,
".exe", " ", cmdoptions, sep = ""), invisible = TRUE)
}
else {
system(paste("cp ", exedr,
file_name, " .", sep = ""))
system(paste("./", file_name, " ", cmdoptions, sep = ""))
unlink(file_name)
}
if (!file.exists(std_file))
stop("The function maximizer failed")
out<-read.fit(file_name)
out<-c(out,reptoRlist(paste(file_name, ".rep",sep="")))
if (abs(out$maxgrad) >= 0.001)
warning("Proper convergence could not be reached gradiant >=
0.001")
return(out)
}
Mark Maunder
Head of the Stock Assessment Program
Inter-American Tropical Tuna Commission
8604 La Jolla Shores Drive
La Jolla, CA, 92037-1508, USA
Tel: (858) 546-7027
Fax: (858) 546-7133
mmaunder at iattc.org
http://www.fisheriesstockassessment.com/TikiWiki/tiki-index.php?page=Mar
k+Maunder
Visit the AD Model Builder project at
http://admb-project.org/ <http://admb-project.org/>
See the following website for information on fisheries stock assessment
http://www.fisheriesstockassessment.com/
From: Nathan Taylor [mailto:n.taylor at fisheries.ubc.ca]
Sent: Monday, May 31, 2010 10:00 AM
To: Mark Maunder; Benedikt Gehr; users at admb-project.org
Subject: RE: [ADMB Users] running admb from R using system()
It's much less elegant than Mark's code because directories and model
names are hard wired but for multiple instances such as multiple mcmc
chains, i've been successful using system() as shown below (64 bit
windows, R version 2.11.0).
setwd("dirname1")
system("model
-commandoptions",wait=F,show.output.on.console=F,invisible=F)
setwd("dirname2")
system("model
-commandoptions",wait=F,show.output.on.console=F,invisible=F)
It's been a while since i set this up but remember having some issues
with the show.output.on.console option using system(). The default for
this option is show.output.on.console = TRUE.
good luck.
NG
-----Original Message-----
From: users-bounces at admb-project.org on behalf of Mark Maunder
Sent: Mon 31/05/2010 9:08 AM
To: Benedikt Gehr; users at admb-project.org
Subject: Re: [ADMB Users] running admb from R using system()
Try this
if (.Platform$OS.type == "windows") {
shell(paste(exedr, file_name,
".exe", " ", cmdoptions, sep = ""), invisible = TRUE)
}
else {
system(paste("cp ", exedr,
file_name, " .", sep = ""))
system(paste("./", file_name, " ", cmdoptions, sep = ""))
unlink(file_name)
}
Mark Maunder
Head of the Stock Assessment Program
Inter-American Tropical Tuna Commission
8604 La Jolla Shores Drive
La Jolla, CA, 92037-1508, USA
Tel: (858) 546-7027
Fax: (858) 546-7133
mmaunder at iattc.org
http://www.fisheriesstockassessment.com/TikiWiki/tiki-index.php?page=Mar
k+Maunder
Visit the AD Model Builder project at
http://admb-project.org/
See the following website for information on fisheries stock assessment
http://www.fisheriesstockassessment.com/
-----Original Message-----
From: users-bounces at admb-project.org
[mailto:users-bounces at admb-project.org] On Behalf Of Benedikt Gehr
Sent: Monday, May 31, 2010 1:44 AM
To: users at admb-project.org
Subject: [ADMB Users] running admb from R using system()
Hi
I'm trying to run an admb model from R by using the system () command.
The admb model runs fine when running it from the admb command line or
when using emacs. However when I try it with system() then R crashes
every time.
And I tried using the R command line and RGui and in both it crashes. I
also tried it from different computers.
What I do is I first set the directory where I keep the admb template
file with the corresponding admb data file and then invoke the system
command either step by step or directly. I can build the model but when
executing the model.exe file R crashes.
##########################
#setting the working directory
setwd("Documents and Settings\\Beni User\\Desktop\\Transfer\\Model
Fournier\\admb models\\simulated data\\stochastic\\pooled age classes")
#building the model -> this works fine
system('makeadm stocpool')
#running the model -> makes R crash
system('stoc.exe')
###########################
#or directly like this:
setwd("Documents and Settings\\Beni User\\Desktop\\Transfer\\Model
Fournier\\admb models\\simulated data\\stochastic\\pooled age classes")
system("./stocpool") -> makes R crash right away
Does anyone know why this happens and how I can make this work?
Thanks a lot for the help!!
cheers
Beni
_______________________________________________
Users mailing list
Users at admb-project.org
http://lists.admb-project.org/mailman/listinfo/users
_______________________________________________
Users mailing list
Users at admb-project.org
http://lists.admb-project.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/users/attachments/20100531/41d55af6/attachment.html>
More information about the Users
mailing list