|
a |
|
b/R/bootstrap.R |
|
|
1 |
bootstrap <- function(data, n_reps) { |
|
|
2 |
results <- numeric(n_reps) |
|
|
3 |
n <- nrow(data) |
|
|
4 |
i <- matrix(sample(n, n * n_reps, replace = TRUE), n_reps, n) |
|
|
5 |
freqs <- t(apply(i, 1, tabulate, ncol(i))) |
|
|
6 |
for (rep in seq_len(n_reps)) { |
|
|
7 |
samp <- freqs[rep, ] |
|
|
8 |
jac <- JS(data, samp) |
|
|
9 |
results[rep] <- mean(jac) |
|
|
10 |
} |
|
|
11 |
return(results) |
|
|
12 |
} |
|
|
13 |
|
|
|
14 |
#' @importFrom vegan vegdist |
|
|
15 |
JS <- function(data, indices) { |
|
|
16 |
d <- data[indices, ] |
|
|
17 |
jac <- vegan::vegdist(d, method = "jaccard") |
|
|
18 |
jac1 <- 1 - jac |
|
|
19 |
return(mean(jac1)) |
|
|
20 |
} |