Defines functions WTcMC

Documented in WTcMC

WTcMC = function(dataset, replicates=999, weight="equal", print.ris=TRUE){
  # The program calculates the Total Niche Width (TNW), and breaks TNW down into its
  # Between Individual Component (BIC) and Within Individual Component (WIC).
  # Continuous data are used.
  # Author: Nicola ZACCARELLI, Giorgio MANCINELLI, Dan BOLNICK
  # E-mail: nicola.zaccarelli@gmail.com,
  #         giorgio.mancinelli@unisalento.it
  #         danbolnick@mail.texas.edu
  # Version: 1.0
  # Date: 10/11/2012
  # if (class(dataset) != "RInSp") stop("The input must be an object of class RInSp") # Changed because of the use of class(.)
  if (!inherits(dataset, "RInSp")) stop("The input must be an object of class RInSp")
  if (dataset$data.type %in% c("integer", "double") != TRUE) stop("Input data type must be double or integer.")
  if (weight %in% c("equal","N_items") == FALSE) stop("`weight` must be either `equal` or `N_items`")
  if (weight == "equal") weight.opt <- 1 else weight.opt <- 2
  replicates <- as.integer(replicates)
  if (replicates <=1) stop("Wrong number of replicates.")
  if (print.ris == TRUE) cat("\n If your dataset is big, this can take time. Please be patient. \n")
  # coerce vec to be double
  if (!is.double(dataset$resources)) dataset$resources <- matrix(as.double(dataset$resources), dataset$num.individuals, dataset$num.prey)
  if(!is.integer(replicates)) replicates <- as.integer(replicates)
  Ris <- .Call("CWTcMC", dataset$resources, as.vector(replicates), as.vector(weight.opt), PACKAGE="RInSp")
  attributes(Ris)$dimnames[[2]] <- c("WIC", "BIC", "TNW", "WonT")
  cum.distr <- ecdf(Ris[, 4])
  pvalue <- cum.distr(Ris[1, 4])
  Ris2 <- list(WonT= Ris[1, 4], p.value= cum.distr(Ris[1, 4]), montecarlo= Ris, weight = weight, parameter = 4)
  class(Ris2) <- "RInSp"
  if (print.ris==TRUE){
  cat("\n Results are based on Roughgarden's 1979 equations.")
  cat("\n The weighting is '")
  if (weight == "equal") { cat("' so each individual contributes")
                           cat("\n equally regardless of the diet items number.")}
      else { cat("' so each individual contributes")
             cat("\n proportionally to the diet items number.")}
  cat("\n Estimated parameters: ")
  cat("\n Within-individual component (WIC)          = ", Ris[1,1])
  cat("\n Between-individual component (BIC)         = ", Ris[1,2])
  cat("\n Total Niche Width for the population (TNW) = ", Ris[1,3])
  cat("\n The value of WIC/TNW is ", Ris[1, 4])
  cat("\n The p-value is ", pvalue)
  cat("\n The weighting option ", weight)

Try the RInSp package in your browser

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

RInSp documentation built on May 20, 2022, 9:06 a.m.