gpt4 book ai didi

r - 显示 Kruskal-Wallis 测试等级

转载 作者:行者123 更新时间:2023-11-28 21:10:48 25 4
gpt4 key购买 nike

我对多处理数据进行了 kruskal wallis 检验,比较了五种不同的方法。

一个 friend 给我看了spss中的计算,结果包括了每种方法的平均排名。

在 R 中,我在应用 kruskal.test 时只得到 chi2df valuep-value > 到我的数据集。这些值等于 spss 中的值,但我没有得到任何排名。

如何打印出计算的等级?我的代码如下所示:

 comparison <- kruskal.test(all,V3,p.adj="bon",group=FALSE, main="over")

如果我打印比较,我会得到以下信息:

Kruskal-Wallis rank sum test
data: all
Kruskal-Wallis chi-squared = 131.4412, df = 4, p-value < 2.2e-16

但我想从 spss 获得类似这样的额外输出:

Type    H   Middle Rank
1,00 57 121.11
2,00 57 148.32
3,00 57 217.49
4,00 57 53.75
5,00 57 174.33
total 285

我如何在 r 中完成这项工作?

最佳答案

不幸的是,你想要的表格你必须自己计算。幸运的是我为你做了一个功能:

#create some random data
ozone <- airquality$Ozone
names(ozone) <- airquality$Month


spssOutput <- function(vector) {
# This function takes your data as one long
# vector and ranks it. After that it computes
# the mean rank of each group. The groupes
# need to be given as names to the vector.
# the function returns a data frame with
# the results in SPSS style.

ma <- matrix(, ncol=3, nrow= 0)
r <- rank(vector, na.last = NA)
to <- 0
for(n in unique(names(r))){
# compute the rank mean for group n
g <- r[names(r) == n]
gt <- length(g)
rm <- sum(g)/gt
to <- to + gt
ma <- rbind(ma, c(n, gt, rm))
}
colnames(ma) <- c("Type","H","Middle Rank")
ma <- rbind(ma, c("total", to, ""))
as.data.frame(ma)
}

# calculate everything
out <- spssOutput(ozone)
print(out, row.names= FALSE)
kruskal.test(Ozone ~ Month, data = airquality)

这将为您提供以下输出:

Type    H      Middle Rank
5 26 36.6923076923077
6 9 48.7222222222222
7 26 77.9038461538462
8 26 75.2307692307692
9 29 48.6896551724138
total 116

Kruskal-Wallis rank sum test

data: Ozone by Month
Kruskal-Wallis chi-squared = 29.2666, df = 4, p-value = 6.901e-06

您尚未共享您的数据,因此您必须自己弄清楚这对您的数据集有何作用。

关于r - 显示 Kruskal-Wallis 测试等级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28813589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com