EDIT2:
Взлом удален, так как это было неправильное решение. Вместо этого нужно использовать страты аргументов загрузочной функции:
total <- c(x,y)
id <- as.factor(c(rep("x",length(x)),rep("y",length(y))))
b <- boot(total, diff, strata=id, R = 10000)
...
Имейте в виду, что вы даже не приблизитесь к правильной оценке вашего p.value:
x <- c(1.4,2.3,2.9,1.5,1.1)
y <- c(23.7,26.6,28.5,14.2,17.9,24.3)
total <- c(x,y)
b <- boot(total, diff, strata=id, R = 10000)
ci <- boot.ci(b)
p.value <- sum(b$t>=b$t0)/b$R
> p.value
[1] 0.5162
Как бы вы объяснили p-значение 0,51 для двух выборок, где все значения второго больше, чем самое высокое значение первого?
Приведенный выше код подходит для получения -безисной оценки доверительного интервала, но проверка значимости разницы должна проводиться путем перестановки по всему набору данных.