您可能会考虑首先查看方法(在将此数据放入数据框“datm”之后):
> aggregate(datm$value, datm['variable'], mean, na.rm=TRUE)
variable x
1 x 0.9566667
2 y 1.4277778
3 z 2.3700000
4 b 0.0787500
或在中位数:
> aggregate(datm$value, datm['variable'], median, na.rm=TRUE)
variable x
1 x 0.750
2 y 1.710
3 z 2.265
4 b 0.010
在包 coin 中有一个基于等级的事后测试(就像 kruskal.test 一样。)它实际上是在 LocationTests 帮助页面的示例中,除了更改列的名称外,无需修改即可复制在公式和数据集名称中。该页面没有被引用的作者,但软件包作者在这里:Torsten Hothorn、Kurt Hornik、Mark A. van de Wiel 和 Achim Zeileis:
### Nemenyi-Damico-Wolfe-Dunn test (joint ranking)
### Hollander & Wolfe (1999), page 244
### (where Steel-Dwass results are given)
if (require("multcomp")) {
NDWD <- oneway_test(value~variable, data = datm,
ytrafo = function(data) trafo(data, numeric_trafo = rank),
xtrafo = function(data) trafo(data, factor_trafo = function(x)
model.matrix(~x - 1) %*% t(contrMat(table(x), "Tukey"))),
teststat = "max", distribution = approximate(B = 90000))
### global p-value
print(pvalue(NDWD))
### DWin note: prints pairwise p-value for comparison of rankings
print(pvalue(NDWD, method = "single-step"))
}
#-----------------------
[1] 0
99 percent confidence interval:
0.000000e+00 5.886846e-05
y - x 0.8287000
z - x 0.1039889
b - x 0.1107667
z - y 0.5421778
b - y 0.0053000
b - z 0.0000000
为了回答评论中的问题,这就是我所做的:
dat <- read.table(text="x y z b
2.06 1.71 2.47 0.00
1.08 2.73 1.75 0.00
1.94 2.29 2.44 0.01
1.32 1.71 2.50 0.01
0.75 2.40 4.17 0.01
0.18 0.45 2.09 0.20
0.72 0.58 1.77 0.30
0.22 0.35 1.77 0.10
0.34 0.63 NA NA", header=TRUE)
require(reshape2)
#Loading required package: reshape2
datm <- melt(dat) # then proceeded as above.