组织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值的可能性。
是否有可以使这种情况发生的包裹,突击队或替代品?使用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)的主要内容,如果未能解决你的问题,请参考以下文章
[R报错] Kruskal-wallis test 所有组的层次都必需是有限的