The Fisheries Library in R (FLR) is a collection of tools for quantitative fisheries science, developed in the R language, that facilitates the construction of bio-economic simulation models of fisheries systems.
FLR builds on the powerful R environment and syntax to create a domain-specific language for the quantitative analysis of the expected risks and effects of fisheries management decision. The classes and methods in FLR consider uncertainty an integral part of our knowledge of fisheries system. […]
To follow this tutorial you should have installed the following packages:
You can do so as follows,
install.packages(c("FLCore"), repos="http://flr-project.org/R")
The main classes (i.e. data structures) and methods (i.e. procedures) in the FLR system are found in the FLCore
package. Let’s load it first
library(FLCore)
FLQuant
classThe basic element on which the FLR classes are based is the FLQuant
class. We can look at the structure of the class in its help page
help(FLQuant)
It is a six-dimensional array, in which the first dimension is free to have any name, quant by default, commonly age
, while the other five have set names:
year
: year of the data point.unit
: any subdivision of the data not based on space or time, for example gender (male
and female
).season
: any time step shorter than year (e.g. month, quarter, week).area
: spatial subdivision of dataiter
: multiple iterations of the same process (e.g. bootstrap, Bayesian, Monte Carlo, …)We can now call the FLQuant()
constructor method to see an example with some random numbers
FLQuant(rlnorm(20), dim=c(4,5), quant="age", units="kg")
An object of class "FLQuant"
An object of class "FLQuant"
, , unit = unique, season = all, area = unique
year
age 1 2 3 4 5
1 0.60352 0.97440 0.99065 1.68515 1.36443
2 1.93833 2.09946 3.13919 0.84972 0.53418
3 0.24826 1.51710 5.28007 0.61229 0.59522
4 3.14748 6.16351 1.06234 0.93561 1.43151
units: kg
and this produces an FLQuant
object with some numbers for ages 1 to 4, and years 1 to 5. The name of the first dimension has been specified to be “age”, while the units of measurement, “kg”, have been stored as an attribute to the array.
An important part of the information associated with any dataset is kept in an FLQuant
as the dimnames
of the array. For example, we can specify in the constructor call the names of any of the dimensions, by using the dimnames
argument
FLQuant(rlnorm(20), units="kg",
dimnames=list(age=0:3, year=2010:2014))
An object of class "FLQuant"
An object of class "FLQuant"
, , unit = unique, season = all, area = unique
year
age 2010 2011 2012 2013 2014
0 5.05653 0.15654 0.69089 1.00484 0.59178
1 0.69980 4.84358 2.49983 2.98628 18.75915
2 1.19544 3.67105 0.28047 3.45236 0.35310
3 0.81529 0.88436 0.41125 2.65102 0.43105
units: kg
There are a number of methods and ways to create FLQuant
objects from different R objects (vector
, matrix
, array
or data.frame
) once loaded into R, please see ?FLQuant
and ?as.FLQuant
for a complete list of available methods.
Objects of this class have the same properties as any array
in R, with some important differences. For example, subsetting on an FLQuant
does not drop by default unused dimensions
flq <- FLQuant(rlnorm(20), units="kg",
dimnames=list(age=0:3, year=2010:2014))
flq[1,]
An object of class "FLQuant"
An object of class "FLQuant"
, , unit = unique, season = all, area = unique
year
age 2010 2011 2012 2013 2014
0 0.83273 0.93033 0.57937 0.53811 0.66576
units: kg
dim(flq[1,])
[1] 1 5 1 1 1 1
so they remain valid FLQuant
objects. Similarly, arithmetic operations on objects of the class, against each other or against numeric vectors, always return an FLQuant
object.
flq * 2
An object of class "FLQuant"
An object of class "FLQuant"
, , unit = unique, season = all, area = unique
year
age 2010 2011 2012 2013 2014
0 1.66546 1.86067 1.15873 1.07622 1.33152
1 1.74553 1.58617 1.13461 2.58775 2.61444
2 0.95651 1.61724 0.91591 1.52422 0.46513
3 4.02794 4.84576 1.19348 0.76540 1.54251
units: kg
flq + (flq * 2)
An object of class "FLQuant"
An object of class "FLQuant"
, , unit = unique, season = all, area = unique
year
age 2010 2011 2012 2013 2014
0 2.4982 2.7910 1.7381 1.6143 1.9973
1 2.6183 2.3793 1.7019 3.8816 3.9217
2 1.4348 2.4259 1.3739 2.2863 0.6977
3 6.0419 7.2686 1.7902 1.1481 2.3138
units: kg
plot(FLQuant(rnorm(200), dim=c(2,20)))
L. T. Kell, I. Mosqueira, P. Grosjean, J-M. Fromentin, D. Garcia, R. Hillary, E. Jardim, S. Mardle, M. A. Pastoors, J. J. Poos, F. Scott, R. D. Scott; FLR: an open-source framework for the evaluation and development of management strategies. ICES J Mar Sci 2007; 64 (4): 640-646. doi: 10.1093/icesjms/fsm012
This document is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license.