首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示Kruskal-Wallis测试等级

显示Kruskal-Wallis测试等级
EN

Stack Overflow用户
提问于 2015-03-02 23:36:16
回答 2查看 1.3K关注 0票数 0

我对多重治疗数据进行了kruskal wallis测试,其中我比较了五种不同的方法。

一位朋友向我展示了spss中的计算,结果包括了每种方法的平均秩。

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

我怎样才能打印出计算的等级?我的代码如下所示:

代码语言:javascript
复制
 comparison <- kruskal.test(all,V3,p.adj="bon",group=FALSE, main="over")

如果我打印出比较结果,我会得到以下结果:

代码语言:javascript
复制
Kruskal-Wallis rank sum test
data:  all
Kruskal-Wallis chi-squared = 131.4412, df = 4, p-value < 2.2e-16

但我想从spss获得类似以下内容的额外输出:

代码语言:javascript
复制
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中完成这项工作?

EN

回答 2

Stack Overflow用户

发布于 2015-03-03 03:39:24

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

代码语言:javascript
复制
#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) 

这将为您提供以下输出:

代码语言:javascript
复制
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

您还没有共享您的数据,因此您必须弄清楚这将如何为您的数据集工作。

票数 2
EN

Stack Overflow用户

发布于 2015-04-15 09:29:18

我有一项任务,我必须这样做。创建一个数据框,其中一列是您正在排名的组合值,一列是每个值所属的类别,最后一列是每个值的排名。函数rank()是实际排名所需的函数。代码如下所示:

代码语言:javascript
复制
low <- c(0.56, 0.57, 0.58, 0.62, 0.64, 0.65, 0.67, 0.68, 0.74, 0.78, 0.85, 0.86)
medium <- c(0.70, 0.74, 0.75, 0.76, 0.78, 0.79, 0.80, 0.82, 0.83, 0.86)
high <- c(0.65, 0.73, 0.74, 0.76, 0.81,0.82, 0.85, 0.86, 0.88, 0.90)

data.value <- c(low, medium, high)
data.category <- c(rep("low", length(low)), rep("medium", length(medium)), rep("high", length(high)) )
data.rank <- rank(data.value)
data <- data.frame(data.value, data.category, data.rank)
data
         data.value data.category data.rank
1        0.56           low       1.0
2        0.57           low       2.0
3        0.58           low       3.0
4        0.62           low       4.0
5        0.64           low       5.0
6        0.65           low       6.5
7        0.67           low       8.0
8        0.68           low       9.0
9        0.74           low      13.0
10       0.78           low      18.5
11       0.85           low      26.5
12       0.86           low      29.0
13       0.70        medium      10.0
14       0.74        medium      13.0
15       0.75        medium      15.0
16       0.76        medium      16.5
17       0.78        medium      18.5
18       0.79        medium      20.0
19       0.80        medium      21.0
20       0.82        medium      23.5
21       0.83        medium      25.0
22       0.86        medium      29.0
23       0.65          high       6.5
24       0.73          high      11.0
25       0.74          high      13.0
26       0.76          high      16.5
27       0.81          high      22.0
28       0.82          high      23.5
29       0.85          high      26.5
30       0.86          high      29.0
31       0.88          high      31.0
32       0.90          high      32.0

这将为您提供一个如下所示的表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28813589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档