function (gamma = 0.9) { weight.diff = c(6, 7, 5, 10.5, 8.5, 3.5, 6.1, 4, 4.6, 4.5, 5.9, 6.5) N = length(weight.diff) M = N * (N + 1)/2 A = outer(weight.diff, weight.diff, "+")/2 A.vec = sort(A[row(A) <= col(A)]) i0 = qsignrank((1 - gamma)/2, N) if (psignrank(i0, N) == (1 - gamma)/2) i0 = i0 + 1 index = c(i0, M - i0 + 1) names(index) = c("i0", "M-i0+1") Interval = c(A.vec[i0], A.vec[M - i0 + 1]) names(Interval) = c("Lower", "Upper") estimate = median(A.vec) names(estimate) = "HL-estimate" list(estimate = estimate, index = index, Interval = Interval, achieved.confidence = 1 - 2 * psignrank(i0 - 1, N)) }