R/boot.overlap.R

boot.overlap <- function (x, B = 1000, pairsOverlap = FALSE, ...)
{
  
  # control 
  if (length(x) == 2 & pairsOverlap == TRUE) pairsOverlap <- FALSE
  
  out <- overlap(x, ...)
  
  if (pairsOverlap) {
    out <- out$OVPairs
    outb <- t(sapply(1:B, function(b) {
      xb <- lapply(x, FUN = sample, replace = TRUE)
      out2 <- overlap(xb, ...)$OVPairs
    }))
  } else {
    out <- out$OV
    outb <- t(sapply(1:B, function(b) {
      xb <- lapply(x, FUN = sample, replace = TRUE)
      out2 <- overlap(xb, ...)$OV
    }))
  }
  
  if (nrow(outb) > 1) {
    bias <- apply(outb, 2, mean) - out
    se <- apply(outb, 2, sd)
  } else {
    bias <- mean(outb) - out
    se <- sd(outb)
  }
  OVboot <- data.frame(estOV = out, bias = bias, se = se)
  return(list(OVboot_stats = OVboot, OVboot_dist = outb))
}

Try the overlapping package in your browser

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

overlapping documentation built on Dec. 28, 2022, 2:13 a.m.