[FLR-list] FLash: iter dimension in fwdControl()
Iago MOSQUEIRA (JRC)
iago.mosqueira at jrc.ec.europa.eu
Mon Feb 2 09:29:19 CET 2015
Hi,
To specify iters in the target value you need to add them to the slot
you mention, @tgrtArray. The process is a bit clumsy at the moment, but
you can do
# SET years
years <- 1:2
# SET No. of iters
niter <- 100
# MODIFY trgtArray with empty array
ctrl at trgtArray <- array(NA, dim=c(length(years), 3, niter), dimnames =
list(years, c("min","val","max"),iter=1:niter))
and then modify the values by passing values to the 'val' column, or
'min' and 'max' if that is what you need
ctrl at trgtArray[,'val',] <- rnorm(200)
The key is creating an array that has the right structure
> dimnames(ctrl at trgtArray)
[[1]]
[1] "1" "2"
[[2]]
[1] "min" "val" "max"
$iter
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11"
"12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23"
"24"
[25] "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35"
"36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47"
"48"
[49] "49" "50" "51" "52" "53" "54" "55" "56" "57" "58" "59"
"60" "61" "62" "63" "64" "65" "66" "67" "68" "69" "70" "71"
"72"
[73] "73" "74" "75" "76" "77" "78" "79" "80" "81" "82" "83"
"84" "85" "86" "87" "88" "89" "90" "91" "92" "93" "94" "95"
"96"
[97] "97" "98" "99" "100"
and adding the values in the right position, taking care of ther
recycling rule.
I am sorry this is really suboptimal right now. The new version of lash
has a much improved version of the constructor that will make simpler
creating control objects with iterations. The reason why target values
are specified in these two objects (data.frame and array) is to be able
to deal with them more easily in the Cpp code in FLash.
This course session has a couple of examples
https://github.com/iagomosqueira/FLRforQuantFishSci/blob/master/Sessions/06%20Forecasting/06.02%20MTF/MTF.R
Best,
Iago
On 02/01/2015 05:13 PM, Simon Fischer wrote:
> Dear all,
>
> I am working on an forecast for a FLStock object using the fwd() method.
> I use the latest Versions of R (3.1.2), FLCore and FLash.
>
> My FLStock object contains several iterations and I want to use
> individual targets (TACs) for each iteration.
> The problem is, that I cannot figure out how to access the iter
> dimension in the fwdControl object:
>
> When I just enter several values, only the last value is used for all
> iterations:
> >library(FLAsh)
> >ctrl <- fwdControl(data.frame(year = 1, quantity = "catch", val =
> c(*100,200*))
> >ctrl
> Target
> year quantity min val max
> 1 1 catch NA 100 NA
> 2 1 catch NA 200 NA
>
> min val max
> 1 NA 100 NA
> 2 NA 200 NA
>
> also here only one iter is created:
> >ctrl at trgtArray
> , , *iter = 1*
>
> min val max
> 1 NA 100 NA
> 2 NA 200 NA
>
>
> So my question is how I can access the iter dimension of fwdControl(),
> if that is even possible.
>
>
> Best regards
> Simon
>
> ______________________________________
> Simon Fischer
> MSc. student
> Institute for Hydrobiology and Fisheries Science,
> University of Hamburg
>
>
>
> _______________________________________________
> flr-list mailing list
> flr-list at flr-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/flr-list
>
More information about the flr-list
mailing list