组织R中的多个p值(kruskal.test)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组织R中的多个p值(kruskal.test)相关的知识,希望对你有一定的参考价值。

使用下面的代码,我创建了具有5个变量的data.frame()。这样,我可以使用kruskal.test()获得p的值。

> sample1 <- c(3, 3, 3, 2, 3)
> sample2 <- c(7, 7, 10, 6, 10)
> sample3 <- c(10, 13, 12, 14, 13)
> sample4 <- c(15, 20, 18, 20, 17)
> sample5 <- c(4, 5, 3, 3, 4)
> table <- data.frame(sample1, sample2, sample3, sample4, sample5)
> 
> kruskal.test(sample1,sample2)$p.value
[1] 0.1353353
> kruskal.test(sample1,sample3)$p.value
[1] 0.2614641
> kruskal.test(sample1,sample4)$p.value
[1] 0.6822703
> kruskal.test(sample1,sample5)$p.value
[1] 0.4723666

但是,我想使用“ table”变量将结果与以下图片类似的data-frame()包含所有p值的可能性。

enter image description here

是否有可以使这种情况发生的包裹,突击队或替代品?使用cor()函数我已经看到了类似的东西,但是直到现在我都找不到适用于我的案例的任何东西。

答案

您可以使用outer()来帮助您。它接受您传递的值的所有组合。例如]

pvals <- outer(table, table, function(x,y) {
  mapply(function(x,y) kruskal.test(x,y)$p.value, x,y)
})

diag(pvals) <- NA
pvals

返回]

          sample1   sample2   sample3   sample4   sample5
sample1        NA 0.1353353 0.2614641 0.6822703 0.4723666
sample2 0.1360371        NA 0.3748093 0.3207621 0.8232919
sample3 0.1467931 0.3311237        NA 0.3173651 0.6738573
sample4 0.2765005 0.5459307 0.4429172        NA 0.1905397
sample5 0.2635525 0.2710219 0.3207621 0.7344166        NA

以上是关于组织R中的多个p值(kruskal.test)的主要内容,如果未能解决你的问题,请参考以下文章

显示 Kruskal-Wallis 测试等级

处理 agricolae Kruskal 测试中的关系,R

如何将 dunn.test 应用于 R 中的数据帧?

[R报错] Kruskal-wallis test 所有组的层次都必需是有限的

Kruskal 测试 kruskal.test.default(e, f) 中的错误:“x”和“g”必须具有相同的长度

将分类值分配给 r 中的多个变量