R/filter.R

Defines functions driftFilter

Documented in driftFilter

##' This function filters a pre-processed data.frame. Consult the
##' paper for the specific criteria used.
##'
##' This function removes all dives that does not match the criteria
##' proposed in Arce et al (2019) as characteristic of Drift dives.
##' @title Filtering dives
##' @param Data Object of class \code{data.frame} generated by
##'     \code{NewVarsVect}
##' @return An object of class \code{data.frame} containing only the
##'     dives accepted by the filter.
driftFilter <- function(Data){
    ## 2.1.3.4
    ## negatives
    Sel1 <-  Data[Data$order=='2.1.3.4' &
                  Data$NDE <0 & Data$d1 < .8 &
                  Data$propseg1 > 40 & Data$sratio < 10, ] #
    ## positives
    Sel11 <- Data[Data$order=='2.1.3.4' &
                  Data$NDE > 0 & Data$sdd > .13 & Data$sdd < .4 &
                  Data$t1 > 7 & Data$t1 < 14 & Data$t4 > 90 &
                  Data$modres4 > -100 & Data$modres4 < 0, ] #
    ## 2.1.4.3
    ## negatives
    Sel2 <-  Data[Data$order=='2.1.4.3' & Data$NDE < 0 &
                  Data$d1 < .7 & Data$d4 < .8 & Data$t1 < 14 &
                  Data$propseg1 > 40 & Data$mrratio < .15, ]
    ## the positives
    Sel22 <- Data[Data$order=='2.1.4.3' & Data$NDE > 0 &
                  Data$mdepthbias < 0 & Data$d4 < .6 &
                  Data$mrratio < .2 & Data$t1 < 15, ]
    ## 2.4.1.3
    ## positives
    Sel3 <- Data[Data$order=='2.4.1.3' & Data$NDE > 0 &
                 Data$t1 < 14 & Data$mdepthr > 1 & Data$mdepthr < 1.5 &
                 Data$d4 < .8 & Data$mrratio < .25 & Data$propseg3 > 30, ] 
    ## the negatives
    Sel33 <- Data[Data$order=='2.4.1.3' & Data$NDE < 0 &
                  Data$d1 < .8 & Data$d4 < .8 & Data$t1 < 14 &
                  Data$modres1 < 0 & Data$mrratio < .15 &
                  Data$meand < .8 & Data$mdepthr > .6 & Data$mdepthr < 1.4, ] #
    ##  3.1.2.4
    ## negatives
    Sel4 <- Data[Data$order=='3.1.2.4' & Data$NDE < 0 &
                 Data$t1 < 14 & Data$propseg1 > 40 &
                 Data$d1 < .6, ]
    ## the positives
    Sel44 <- Data[Data$order=='3.1.2.4' & Data$NDE > 0 &
                  Data$t1 < 14 & Data$d4 < .7 & Data$propseg1 < 15 &
                  Data$d1 < .85 & Data$mdepthr > .8 & Data$mdepthr < 1.5  &
                  Data$propseg2 > 40, ]
    ## 3.1.4.2
    ## positives
    Sel5<- Data[Data$order=='3.1.4.2' & Data$NDE > 0 &
                Data$t1 < 12 & Data$sdd > .1 & Data$sdd < .3 &
                Data$mdepthr > .8 & Data$mdepthr < 1.3 & Data$propseg2 > 20 &
                Data$mrratio < .3 & Data$t4 > 90, ]
    ## the negatives
    Sel55<- Data[Data$order=='3.1.4.2' & Data$NDE < 0 &
                 Data$d1 < .8 & Data$d4 < .8 &
               Data$propseg1 > 40 & Data$sratio < 10, ]
    ## 3.2.1.4
    ## negatives
    Sel6 <- Data[Data$order=='3.2.1.4' & Data$propseg2 > 45 &
               Data$d2 < .8 & Data$mrratio < .2, ]
    ## 3.4.1.2
    ## negatives
    Sel7 <- Data[Data$order=='3.4.1.2' & Data$NDE < 0 &
                 Data$d1 < .8 & Data$t1 < 14 & Data$propseg3 < 20 &
                 Data$d4 < .8 & Data$mrratio < .2, ]
    ## positivos
    Sel77 <- Data[Data$order=='3.4.1.2' & Data$NDE > 0 &
                  Data$modres1 < 0 & Data$d4 < .8 & Data$t1 < 12 &
                  Data$t4 > 85 & Data$sratio > 2 & Data$sratio < 7, ]
    ## 4.2.1.3
    ## positives
    Sel8 <- Data[Data$order=='4.2.1.3'& Data$NDE > 0 & Data$t1 < 8 &
               Data$mdepthr > .8 & Data$mdepthr < 2 & Data$t4 > 80, ]
    ## negatives
    Sel88 <- Data[Data$order=='4.2.1.3' & Data$NDE < 0 & Data$d2 < .8 &
                Data$d4 < .8 & Data$mrratio < .2 & Data$t4 > 85 &
                Data$t1 < 9, ]
    final <- rbind(Sel1,Sel11,Sel2,Sel22,Sel3,Sel33,Sel4,
                   Sel44,Sel5,Sel55,Sel6,Sel7,Sel77,Sel8,Sel88)
    final <- final[complete.cases(final), ]
    return(final)
}
farcego/slimmingDive documentation built on April 14, 2024, 8:24 a.m.