1 |
J |
|
K |
|
L |
|
x |
|
tr |
|
grp |
|
alpha |
|
p |
|
MAT |
|
lev.col |
|
var.col |
|
pr |
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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | ##---- 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 (J, K, L, x, tr = 0.2, grp = c(1:p), alpha = 0.05, p = J *
K * L, MAT = FALSE, lev.col = c(1:3), var.col = 4, pr = TRUE)
{
if (is.data.frame(x))
x = as.matrix(x)
data = x
if (MAT) {
if (!is.matrix(data))
stop("With MAT=T, data must be a matrix")
if (length(lev.col) != 3)
stop("Argument lev.col should have 3 values")
temp = selby2(data, lev.col, var.col)
lev1 = length(unique(temp$grpn[, 1]))
lev2 = length(unique(temp$grpn[, 2]))
lev3 = length(unique(temp$grpn[, 3]))
gv = apply(temp$grpn, 2, rank)
gvad = 100 * gv[, 1] + 10 * gv[, 2] + gv[, 3]
grp = rank(gvad)
if (pr) {
print(paste("Factor 1 has", lev1, "levels"))
print(paste("Factor 2 has", lev2, "levels"))
print(paste("Factor 3 has", lev3, "levels"))
}
if (J != lev1)
warning("J is being reset to the number of levels found")
if (K != lev2)
warning("K is being reset to the number of levels found")
if (L != lev3)
warning("K is being reset to the number of levels found")
J = lev1
K = lev2
L = lev2
data = temp$x
}
if (is.matrix(data))
data = listm(data)
if (!is.list(data))
stop("Data is not stored in list mode")
if (p != length(data)) {
print("The total number of groups, based on the specified levels, is")
print(p)
print("The number of groups in data is")
print(length(data))
print("Warning: These two values are not equal")
}
tmeans <- 0
h <- 0
v <- 0
for (i in 1:p) {
tmeans[i] <- mean(data[[grp[i]]], tr)
h[i] <- length(data[[grp[i]]]) - 2 * floor(tr * length(data[[grp[i]]]))
v[i] <- (length(data[[grp[i]]]) - 1) * winvar(data[[grp[i]]],
tr)/(h[i] * (h[i] - 1))
}
v <- diag(v, p, p)
ij <- matrix(c(rep(1, J)), 1, J)
ik <- matrix(c(rep(1, K)), 1, K)
il <- matrix(c(rep(1, L)), 1, L)
jm1 <- J - 1
cj <- diag(1, jm1, J)
for (i in 1:jm1) cj[i, i + 1] <- 0 - 1
km1 <- K - 1
ck <- diag(1, km1, K)
for (i in 1:km1) ck[i, i + 1] <- 0 - 1
lm1 <- L - 1
cl <- diag(1, lm1, L)
for (i in 1:lm1) cl[i, i + 1] <- 0 - 1
cmat <- kron(cj, kron(ik, il))
Qa <- johan(cmat, tmeans, v, h, alpha)
Qa.pv = t3pval(cmat, tmeans, v, h)
cmat <- kron(ij, kron(ck, il))
Qb <- johan(cmat, tmeans, v, h, alpha)
Qb.pv = t3pval(cmat, tmeans, v, h)
cmat <- kron(ij, kron(ik, cl))
Qc <- johan(cmat, tmeans, v, h, alpha)
Qc.pv = t3pval(cmat, tmeans, v, h)
cmat <- kron(cj, kron(ck, il))
Qab <- johan(cmat, tmeans, v, h, alpha)
Qab.pv = t3pval(cmat, tmeans, v, h)
cmat <- kron(cj, kron(ik, cl))
Qac <- johan(cmat, tmeans, v, h, alpha)
Qac.pv = t3pval(cmat, tmeans, v, h)
cmat <- kron(ij, kron(ck, cl))
Qbc <- johan(cmat, tmeans, v, h, alpha)
Qbc.pv = t3pval(cmat, tmeans, v, h)
cmat <- kron(cj, kron(ck, cl))
Qabc <- johan(cmat, tmeans, v, h, alpha)
Qabc.pv = t3pval(cmat, tmeans, v, h)
list(Qa = Qa$teststat, Qa.crit = Qa$crit, Qa.p.value = Qa.pv,
Qb = Qb$teststat, Qb.crit = Qb$crit, Qb.p.value = Qb.pv,
Qc = Qc$teststat, Qc.crit = Qc$crit, Qc.p.value = Qc.pv,
Qab = Qab$teststat, Qab.crit = Qab$crit, Qab.p.value = Qab.pv,
Qac = Qac$teststat, Qac.crit = Qac$crit, Qac.p.value = Qac.pv,
Qbc = Qbc$teststat, Qbc.crit = Qbc$crit, Qbc.p.value = Qbc.pv,
Qabc = Qabc$teststat, Qabc.crit = Qabc$crit, Qabc.p.value = Qabc.pv)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.