[FLR-list] FLCohort
Laurie
lauriekell at googlemail.com
Tue Oct 18 13:03:31 CEST 2011
On 10/18/2011 12:50 PM, ernesto.jardim at jrc.ec.europa.eu wrote:
> On 10/18/2011 12:02 PM, Laurie wrote:
>> On 10/18/2011 11:41 AM, ernesto.jardim at jrc.ec.europa.eu wrote:
>>> On 10/18/2011 11:26 AM, Laurie wrote:
>>>> I am working on tagging models, where tags are released for a
>>>> number of years and then recaptured in subsequent years. This
>>>> allows M & Z to be estimated along a cohort.
>>>>
>>>> The data are in the form of number of fish tagged and recovered
>>>> each year of a cohort. This means that you can´t use FLCohort which
>>>> has age & cohort as dims 1&2.
>>>>
>>>> However, if you use the 1st dim for cohort then you can model this
>>>> with an FLQuant, i.e.
>>>>
>>>> library(plyr)
>>>>
>>>> setGeneric("I", function(object,...)
>>>> standardGeneric("I"))
>>>> setGeneric('O', function(object, ...)
>>>> standardGeneric("O"))
>>>>
>>>> setMethod('I', signature(object='FLQuant'),
>>>> function(object,...){
>>>> dmns <-dimnames(object)
>>>> dmns[[1]]
>>>> <-ac((dims(object)$minyear-dims(object)$max):(dims(object)$maxyear-
>>>> dims(object)$min))
>>>> names(dmns)[1]<-"quant"
>>>> flc <-FLQuant(NA,dimnames=dmns)
>>>>
>>>> t. <-as.data.frame(object)
>>>> t.$cohort <-t.$year-t.$age
>>>> flc[]
>>>> <-daply(t.,c("cohort","year","unit","season","area","iter"),function(x)
>>>> sum(x$data))
>>>>
>>>> return(flc)})
>>>>
>>>> setMethod('O', signature(object='FLQuant'),
>>>> function(object,...){
>>>> dmns <-dimnames(object)
>>>> dmns[[1]]
>>>> <-ac((dims(object)$maxyear-dims(object)$max):(dims(object)$minyear-dims(object)$min))
>>>> names(dmns)[1]<-"age"
>>>> flc <-FLQuant(NA,dimnames=dmns)
>>>>
>>>> t. <-as.data.frame(object)
>>>> t.$age <-t.$year-t.$quant
>>>> t. <-t.[!is.na(t.$data),]
>>>> flc[]
>>>> <-daply(t.,c("age","year","unit","season","area","iter"),function(x) sum(x$data))
>>>>
>>>>
>>>> return(flc)})
>>>>
>>>> data(ple4)
>>>>
>>>> m1=I(m(ple4))
>>>> m2=O(m1)
>>>>
>>>> It is probably best to derive a new class for this object just to
>>>> break VPAs etc. But what to call it? Also how does it relate to
>>>> FLCohort.
>>>> Laurie
>>>
>>> You may change the age in FLCohort
>>>
>>> library(FLCore)
>>> data(ple4)
>>> flc <- FLCohort(catch.n(ple4))
>>> quant(flc) <- "year"
>>>
>>> why not using year in the first dimension ? it should work out of
>>> the box.
>>>
>>> EJ
>>>
>>>
>> But you don´t get what you want.
>>
>>
>>
>> I(m(ple4))[1:10,1:10]
>> An object of class "FLQuant"
>> , , unit = unique, season = all, area = unique
>>
>> year
>> quant 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966
>> 1947 0.1 NA NA NA NA NA NA NA NA NA
>> 1948 0.1 0.1 NA NA NA NA NA NA NA NA
>> 1949 0.1 0.1 0.1 NA NA NA NA NA NA NA
>> 1950 0.1 0.1 0.1 0.1 NA NA NA NA NA NA
>> 1951 0.1 0.1 0.1 0.1 0.1 NA NA NA NA NA
>> 1952 0.1 0.1 0.1 0.1 0.1 0.1 NA NA NA NA
>> 1953 0.1 0.1 0.1 0.1 0.1 0.1 0.1 NA NA NA
>> 1954 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 NA NA
>> 1955 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 NA
>> 1956 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
>>
>> units: NA
>> > FLCohort(m(ple4))[1:10,1:10]
>> An object of class "FLCohort"
>> , , unit = unique, season = all, area = unique
>>
>> cohort
>> age 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956
>> 1 NA NA NA NA NA NA NA NA NA 0.1
>> 2 NA NA NA NA NA NA NA NA 0.1 0.1
>> 3 NA NA NA NA NA NA NA 0.1 0.1 0.1
>> 4 NA NA NA NA NA NA 0.1 0.1 0.1 0.1
>> 5 NA NA NA NA NA 0.1 0.1 0.1 0.1 0.1
>> 6 NA NA NA NA 0.1 0.1 0.1 0.1 0.1 0.1
>> 7 NA NA NA 0.1 0.1 0.1 0.1 0.1 0.1 0.1
>> 8 NA NA 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
>> 9 NA 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
>>
>> laurie
>>
>
> Lost me. What do you want ?
>
> EJ
>
>
>
There are three ways to represent the 1st two dims in an FLQuant.
i) age & year
ii) age & cohort
iii) cohort & year
(i) is FLQuant and (ii) is FLCohort; However we do not have (iii) which
is what I need for my tagging model.
I have created an "FLCohortYear" from an FLQuant by adding I() & O() as
coercion methods and validity that only allows 1st dim to be called cohort.
But then we have two FLCohort objects which might conflict.
Laurie
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/flr-list/attachments/20111018/f03b2a0c/attachment-0001.htm>
More information about the flr-list
mailing list