1 |
x1 |
|
y1 |
|
x2 |
|
y2 |
|
fr1 |
|
fr2 |
|
tr |
|
alpha |
|
plotit |
|
pts |
|
sm |
|
xout |
|
outfun |
|
DIF |
|
LP |
|
xlab |
|
ylab |
|
pch1 |
|
pch2 |
|
... |
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 102 103 104 105 106 107 108 109 110 111 | ##---- 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 (x1, y1, x2, y2, fr1 = 1, fr2 = 1, tr = 0.2, alpha = 0.05,
plotit = TRUE, pts = NA, sm = FALSE, xout = FALSE, outfun = out,
DIF = FALSE, LP = TRUE, xlab = "X", ylab = "Y", pch1 = "*",
pch2 = "+", ...)
{
if (ncol(as.matrix(x1)) > 1)
stop("One covariate only is allowed with this function")
if (length(x1) != length(y1))
stop("x1 and y1 have different lengths")
if (length(x1) != length(x2))
stop("x1 and y2 have different lengths")
if (length(x2) != length(y2))
stop("x2 and y2 have different lengths")
if (length(y1) != length(y2))
stop("y1 and y2 have different lengths")
xy = elimna(cbind(x1, y1, x2, y2))
x1 = xy[, 1]
y1 = xy[, 2]
x2 = xy[, 3]
y2 = xy[, 4]
xorder <- order(x1)
y1 <- y1[xorder]
x1 <- x1[xorder]
xorder <- order(x2)
y2 <- y2[xorder]
x2 <- x2[xorder]
if (!is.na(pts[1]))
mat = Dancovapts(x1, y1, x2, y2, fr1 = fr1, fr2 = fr2,
tr = tr, alpha = alpha, plotit = FALSE, pts = pts,
sm = sm, xout = xout, outfun = outfun, DIF = DIF,
...)
if (is.na(pts[1])) {
npt <- 5
isub <- c(1:5)
test <- c(1:5)
xorder <- order(x1)
y1 <- y1[xorder]
x1 <- x1[xorder]
xorder <- order(x2)
y2 <- y2[xorder]
x2 <- x2[xorder]
n1 <- 1
n2 <- 1
vecn <- 1
n = length(y1)
ivals = c(1:n)
for (i in 1:length(x1)) n1[i] <- length(y1[near(x1, x1[i],
fr1)])
for (i in 1:length(x1)) n2[i] <- length(y2[near(x2, x1[i],
fr2)])
for (i in 1:length(x1)) vecn[i] <- min(n1[i], n2[i])
sub <- c(1:length(x1))
isub[1] <- min(sub[vecn >= 12])
isub[5] <- max(sub[vecn >= 12])
isub[3] <- floor((isub[1] + isub[5])/2)
isub[2] <- floor((isub[1] + isub[3])/2)
isub[4] <- floor((isub[3] + isub[5])/2)
mat <- matrix(NA, 5, 9)
dimnames(mat) <- list(NULL, c("X", "n", "DIF", "TEST",
"se", "ci.low", "ci.hi", "p.value", "p.crit"))
for (i in 1:5) {
t1 = near(x1, x1[isub[i]], fr1)
t2 = near(x2, x1[isub[i]], fr2)
iv1 = ivals[t1]
iv2 = ivals[t2]
pick = unique(c(iv1, iv2))
mat[i, 2] <- length(y1[pick])
if (!DIF)
test <- yuend(y1[pick], y2[pick], tr = tr, alpha = alpha)
if (DIF)
test <- trimci(y1[pick] - y2[pick], tr = tr,
pr = FALSE, alpha = alpha)
mat[i, 1] <- x1[isub[i]]
if (!DIF) {
mat[i, 4] <- test$teststat
mat[i, 3] <- test$dif
}
if (DIF) {
mat[i, 4] <- test$test.stat
mat[i, 3] <- test$estimate
}
mat[i, 5] <- test$se
mat[i, 6] <- test$ci[1]
mat[i, 7] <- test$ci[2]
mat[i, 8] <- test$p.value
}
temp2 <- order(0 - mat[, 8])
bot = c(1:nrow(mat))
dvec = sort(alpha/bot, decreasing = TRUE)
mat[temp2, 9] = dvec
}
if (plotit) {
if (xout) {
flag <- outfun(x1, ...)$keep
x1 <- x1[flag]
y1 <- y1[flag]
flag <- outfun(x2, ...)$keep
x2 <- x2[flag]
y2 <- y2[flag]
}
runmean2g(x1, y1, x2, y2, fr = fr1, est = tmean, sm = sm,
xout = FALSE, LP = LP, xlab = xlab, ylab = ylab,
pch1 = pch1, pch2 = pch2, ...)
}
list(output = mat)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.