#' Draw sample with replace = T
#' @param d A vector
sampler <- function(d){
if(length(d) == 1){
return(d)
}else{
return(sample(d, replace=TRUE))
}
}
#' Compute confidence interval
#' @param data A vector
#' @param FUN The function to be applied:
#' @param rep Number of repetition. Defaul value: 10000
#' @param median Do you want to compute a median? Default value: FALSE
#' @param dfoutput Do you want to get results in the data.frame (necessary if you use do function)? Default value: FALSE
boot_ci <- function(data, FUN, rep = 10000, median = F, dfoutput = F)
{
res <- c()
for (i in 1:rep) {
d2 <- sampler(data)
r <- FUN(d2)
res <- c(res, r)
}
val <- FUN(data)
q <- quantile(res, probs = c(0.025, 0.975), na.rm = TRUE)
if (median == F) {
result <- list(
min = q[1], val = val, max = q[2], se = sd(res)
)
} else {
result <- list(min = q[1], val = val, max = q[2], se = sd(res), median = median(data,na.rm = T))
}
if (dfoutput == T) {
return(as.data.frame(result))
} else {
return(result)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.