从Kruskal-Wallis输出中提取p值

5

假设我有一个数据框

> 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 

很明显没有运气。
从谷歌教授得到的初步帮助将我引导到了上面描述的点。
非常感谢所有的帮助。谢谢!
附注:请注意,数据仅用于提供示例。我没有测试正态分布,也不想使用这些数据进行测试。我的原始工作数据不符合正态分布,但由于保密原因,我不会使用它或其中的部分作为示例。示例数据行为类似于我的原始工作数据。

names(dfKW)str(dfKW)非常有用,可以查看可以提取的对象。 - user20650
1个回答

4
这将会把p值作为一个数字返回:
> dfKW$p.value
[1] 0.1929473

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

谢谢!我有一个臭名昭著的倾向,喜欢匆匆浏览手册。现在我希望我能再花点时间看一遍。 - Olli J

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接