mcpKadjp:

Usage Arguments Examples

Usage

1
mcpKadjp(p, k = 1, proc = c("Holm"), rawp = p)

Arguments

p
k
proc
rawp

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (p, k = 1, proc = c("Holm"), rawp = p) 
{
    D1 <- function(k = 1, s = 1000) {
        alpha <- NULL
        for (i in 1:s) {
            if (i <= k) 
                alpha[i] = k/s
            else alpha[i] = k/(s + k - i)
        }
        S <- NULL
        S[1:k] <- 0
        for (I in (k + 1):s) {
            tmp <- NULL
            tmp[1:(k - 1)] <- 0
            tmp[k] = I * alpha[s - I + k]/k
            for (j in (k + 1):I) tmp[j] = I * (alpha[s - I + 
                j] - alpha[s - I + j - 1])/j
            S[I] <- sum(tmp)
            if (S[I] < S[I - 1]) 
                break
            maxI <- I
            maxS <- round(S[I], 4)
        }
        return(list(S = S, maxI = maxI, maxS = maxS))
    }
    m <- length(rawp)
    n <- length(proc)
    index <- order(rawp)
    spval <- rawp[index]
    adjp <- matrix(0, m, n + 1)
    dimnames(adjp) <- list(NULL, c("rawp", proc))
    adjp[, 1] <- spval
    if (is.element("Holm", proc)) {
        crit <- sapply(c(rep(k, k - 1), k:m), function(i) k/(m - 
            i + k))
        tmp <- 1/crit * spval
        tmp[tmp > 1] <- 1
        for (i in 2:m) tmp[i] <- max(tmp[i - 1], tmp[i])
        adjp[, "Holm"] <- tmp
    }
    if (is.element("Hochberg", proc)) {
        crit <- sapply(c(rep(k, k - 1), k:m), function(i) k/(m - 
            i + k))
        tmp <- 1/crit * spval
        tmp[tmp > 1] <- 1
        for (i in (m - 1):1) tmp[i] <- min(tmp[i + 1], tmp[i])
        adjp[, "Hochberg"] <- tmp
    }
    if (is.element("RS", proc)) {
        d <- D1(k, m)$maxS
        crit <- sapply(c(rep(k, k - 1), k:m), function(i) k/(m - 
            i + k)/d)
        tmp <- 1/crit * spval
        tmp[tmp > 1] <- 1
        for (i in (m - 1):1) tmp[i] <- min(tmp[i + 1], tmp[i])
        adjp[, "RS"] <- tmp
    }
    if (is.element("Sarkar", proc)) {
        crit <- sapply(c(rep(k, k - 1), k:m), function(i) (prod((1:k)/(m - 
            i + (1:k)))))
        tmp <- 1/crit * (spval^k)
        tmp[tmp > 1] <- 1
        for (i in (m - 1):1) tmp[i] <- min(tmp[i + 1], tmp[i])
        tmp <- pmax(tmp, spval)
        adjp[, "Sarkar"] <- tmp
    }
    if (is.element("BH", proc)) {
        crit <- sapply(c(1:m), function(i) i/m)
        tmp <- 1/crit * spval
        tmp[tmp > 1] <- 1
        for (i in (m - 1):1) tmp[i] <- min(tmp[i + 1], tmp[i])
        adjp[, "BH"] <- tmp
    }
    adjp <- adjp[order(index), ]
    return(adjp)
  }

musto101/wilcox_R documentation built on May 23, 2019, 10:52 a.m.