Iteratively changes the control file using SS_changepars.
SS_profile(dir = "C:/myfiles/mymodels/myrun/",
masterctlfile = "control.ss_new", newctlfile = "control_modified.ss",
linenum = NULL, string = NULL, profilevec = NULL, usepar = FALSE,
globalpar = FALSE, parfile = NULL, parlinenum = NULL,
parstring = NULL, dircopy = TRUE, exe.delete = FALSE, model = "ss3",
extras = "-nox", systemcmd = FALSE, saveoutput = TRUE,
overwrite = TRUE, whichruns = NULL, verbose = TRUE)
Directory where input files and executable are located.
Source control file. Default = "control.ss_new"
Destination for new control files (must match entry in starter file). Default = "control_modified.ss".
Line number of parameter to be changed. Can be used instead
of string
or left as NULL.
String partially matching name of parameter to be changed. Can
be used instead of linenum
or left as NULL.
Vector of values to profile over. Default = NULL.
Use PAR file from previous profile step for starting values?
Use global par file for all runs instead of the par file from each successive run
Name of par file to use (Ian says "I don't remember how this interacts with the globalpar input")
Line number in par file to change.
String in par file preceding line number to change.
Copy directories for each run? NOT IMPLEMENTED YET.
Delete exe files in each directory? NOT IMPLEMENTED YET.
Name of executable. Default = "ss3".
Additional commands to use when running SS. Default = "-nox" will reduce the amound of command-line output.
Should R call SS using "system" function intead of "shell". This may be required when running R in Emacs. Default = FALSE.
Copy output .SSO files to unique names. Default = TRUE.
Overwrite any existing .SSO files. Default = TRUE. If FALSE, then some runs may be skipped.
Optional vector of run indices to do. This can be used to re-run a subset of the cases in situations where the function was interupted or some runs fail to converge. Must be a subset of 1:n, where n is the length of profilevec.
Controls amount of info output to command line. Default = TRUE.
# NOT RUN {
# }
# NOT RUN {
# note: don't run this in your main directory
# make a copy in case something goes wrong
mydir <- "C:/ss/Simple - Copy"
# the following commands related to starter.ss could be done by hand
# read starter file
starter <- SS_readstarter(file.path(mydir, 'starter.ss'))
# change control file name in the starter file
starter$ctlfile <- "control_modified.ss"
# make sure the prior likelihood is calculated
# for non-estimated quantities
starter$prior_like <- 1
# write modified starter file
SS_writestarter(starter, dir=mydir, overwrite=TRUE)
# vector of values to profile over
h.vec <- seq(0.3,0.9,.1)
Nprofile <- length(h.vec)
# run SS_profile command
profile <- SS_profile(dir=mydir, # directory
# "NatM" is a subset of one of the
# parameter labels in control.ss_new
model="ss3_safe",
masterctlfile="control.ss_new",
newctlfile="control_modified.ss",
string="steep",
profilevec=h.vec)
# read the output files (with names like Report1.sso, Report2.sso, etc.)
profilemodels <- SSgetoutput(dirvec=mydir, keyvec=1:Nprofile)
# summarize output
profilesummary <- SSsummarize(profilemodels)
# OPTIONAL COMMANDS TO ADD MODEL WITH PROFILE PARAMETER ESTIMATED
MLEmodel <- SS_output("C:/ss/SSv3.24l_Dec5/Simple")
profilemodels$MLE <- MLEmodel
profilesummary <- SSsummarize(profilemodels)
# END OPTIONAL COMMANDS
# plot profile using summary created above
SSplotProfile(profilesummary, # summary object
profile.string = "steep", # substring of profile parameter
profile.label="Stock-recruit steepness (h)") # axis label
# make timeseries plots comparing models in profile
SSplotComparisons(profilesummary,legendlabels=paste("h =",h.vec))
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab