Допустим, ради воспроизводимости, у вас есть
my_df <- data.frame(x=1:9, stratum=rep(1:3, each=3))
my_df
# x stratum
# 1 1 1
# 2 2 1
# 3 3 1
# 4 4 2
# 5 5 2
# 6 6 2
# 7 7 3
# 8 8 3
# 9 9 3
и у вас есть веса, связанные со стратами wts <- c(4,2,1)
- обратите внимание, их не обязательно добавлять к 1.
Вы можете загрузиться "вручную", позвонив как
N_boot <- 10000
boot_mns <- rep(NA, N_boot)
for(i in 1:N_boot) {
B <- sample(my_df$x, prob=wts[my_df$stratum])
# or prob=wts[as.numeric(as.factor(my_df$stratum))] as needed
boot_mns[i] <- mean(B)
}
Вероятно, лучше сделать это с пакетом boot
, но это довольно ясно видно в происходящем.