从 Kruskal-Wallis 输出中提取 p 值

Extract p-value from Kruskal-Wallis output

假设我有一个数据框

> col1<-c(1,5,2,6,8,1,3,8,9,1,8)
> col2<-c(1,2,1,1,2,2,1,2,2,1,1)
> df<-data.frame(col1,col2)
> df

   col1 col2
1     1    1
2     5    2
3     2    1
4     6    1
5     8    2
6     1    2
7     3    1
8     8    2
9     9    2
10    1    1
11    8    1

我用 df

中的数据进行了 运行 Kruskal-Wallis 检验
> dfKW<-kruskal.test(col1~col2, data=df)
> dfKW

Kruskal-Wallis rank sum test

data:  col1 by col2
Kruskal-Wallis chi-squared = 1.695, df = 1, p-value = 0.1929

我想做的是将 p 值提取到一个向量中(只有没有标签 'p-value' 的值)。我试过这个:

> dfKWx<-sapply(dfKW, '[', 'p.value')
> dfKWx

statistic.NA parameter.NA      p.value       method    data.name 
          NA           NA           NA           NA           NA 

显然运气不好。

我从教授 Google 那里得到的初步帮助使我达到了上述目的。

真诚感谢所有帮助。谢谢!

PS。请注意,数据仅用于提供示例。我没有测试正态分布,也不希望对这些数据进行测试。我的原始工作数据没有正常分发,但由于保密因素,我不会使用它(或其中的一部分)作为示例。示例数据的行为与我的原始工作数据类似。

这将为您提供 numeric:

的 p 值
> dfKW$p.value
[1] 0.1929473

查看 ?kruskal.test 中的 "Value" 部分。