R/CalculateCCFIs.R

Defines functions CalculateCCFIs

Documented in CalculateCCFIs

CalculateCCFIs <-
function(x.results, x.dim.results, x.cat.results, parameters) 
  {
  # 
  # Calculates CCFI results for taxometric analyses.
  #
  # Args:
  #       x.results: Empirical data results (list).
  #   x.dim.results: Dimensional comparison data results (list).
  #   x.cat.results: Categorical comparison data results (list).
  #      parameters: Data and program parameters (list).
  #
  # Returns:
  #   List object containing all CCFI values.
  #
  MAMBAC.CCFI <- 0
  MAXEIG.CCFI <- 0
  LMode.CCFI <- 0
  MAXSLOPE.CCFI <- 0
  sum.CCFI <- 0
  n.CCFI <- 0
  output <- list(0)
  if (parameters$MAMBAC) {
    MAMBAC.CCFI <- CalculateCCFI(apply(x.results$MAMBAC, 2, mean), 
                                 apply(x.dim.results$MAMBAC, 2, mean),
                                 apply(x.cat.results$MAMBAC, 2, mean))
    sum.CCFI <- sum.CCFI + MAMBAC.CCFI
    n.CCFI <- n.CCFI + 1
    output <- c(output, CCFI.MAMBAC = MAMBAC.CCFI)
  }
  if (parameters$MAXEIG) {
    MAXEIG.CCFI <- CalculateCCFI(apply(x.results$MAXEIG.y, 2, mean), 
                                 apply(x.dim.results$MAXEIG.y, 2, mean),
                                 apply(x.cat.results$MAXEIG.y, 2, mean))
    sum.CCFI <- sum.CCFI + MAXEIG.CCFI
    n.CCFI <- n.CCFI + 1
    output <- c(output, CCFI.MAXEIG = MAXEIG.CCFI)
  }
  if (parameters$LMode) {
    LMode.CCFI <- CalculateLModeCCFI(x.results$LMode.x, x.results$LMode.y, 
                                     apply(x.dim.results$LMode.x, 2, mean),
                                     apply(x.dim.results$LMode.y, 2, mean),
                                     apply(x.cat.results$LMode.x, 2, mean), 
                                     apply(x.cat.results$LMode.y, 2, mean))                                
    sum.CCFI <- sum.CCFI + LMode.CCFI
    n.CCFI <- n.CCFI + 1
    output <- c(output, CCFI.LMode = LMode.CCFI)
  }
  if (parameters$MAXSLOPE) {
    MAXSLOPE.CCFI <- CalculateCCFI(apply(x.results$MAXSLOPE.y, 2, mean),
                                   apply(x.dim.results$MAXSLOPE.y, 2, mean),
                                   apply(x.cat.results$MAXSLOPE.y, 2, mean))
    sum.CCFI <- sum.CCFI + MAXSLOPE.CCFI
    n.CCFI <- n.CCFI + 1
    output <- c(output, CCFI.MAXSLOPE = MAXSLOPE.CCFI)
  }
  mean.CCFI <- sum.CCFI / n.CCFI
  output <- c(output, CCFI.mean = mean.CCFI)
  output <- output[2:length(output)]
  return(output)
}

Try the RTaxometrics package in your browser

Any scripts or data that you put into this service are public.

RTaxometrics documentation built on May 31, 2023, 8:29 p.m.