如何通过不同的组循环kruskal-wallis测试,然后打印结果

如何通过不同的组循环kruskal-wallis测试,然后打印结果,r,loops,group-by,R,Loops,Group By,我的示例数据集如下所示: Day<-c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2) Group<-c("A","A","A","B","B","B","C","C","C","A","A","A","A&

我的示例数据集如下所示:

Day<-c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2)
Group<-c("A","A","A","B","B","B","C","C","C","A","A","A","A","B","B","B","C","C","C")
Value<-c(4,4,6,5,3,4,5,5,3,6,6,6,5,3,3,3,2,5,2)

d<-data.frame(Day,Group,Value)

Day暴力,您可以使用
kruskal.test的
subset=
参数:

kruskal.test(值~Group,数据=d,子集=Day==1)
#Kruskal-Wallis秩和检验
#数据:分组值
#Kruskal-Wallis卡方检验=0.5045,df=2,p值=0.777
(第2天也是如此)

但如果有很多天,或者有多少天是事先不知道的,这是不令人满意的

下面是另一个选项,它每天独立执行并在一个列表中返回所有内容:


ret蛮力,您可以使用
kruskal.test的
subset=
参数:

kruskal.test(值~Group,数据=d,子集=Day==1)
#Kruskal-Wallis秩和检验
#数据:分组值
#Kruskal-Wallis卡方检验=0.5045,df=2,p值=0.777
(第2天也是如此)

但如果有很多天,或者有多少天是事先不知道的,这是不令人满意的

下面是另一个选项,它每天独立执行并在一个列表中返回所有内容:


ret这里有一个整洁的解决方案。按
天分组
,将K-W测试作为列表列进行拟合,然后
将测试范围扩大

库(tidyverse)
图书馆(扫帚)
d%>%
分组单位(天)%>%
总结(拟合=列表(kruskal.测试(值组)%>%tidy))%>%
unnest_加宽(适合)
输出:

#一个tible:2 x 5
日统计p值参数法
1 0.505 0.777 2 Kruskal-Wallis秩和检验
2 6.52 0.0384 2 Kruskal-Wallis秩和检验

这里有一个tidyverse解决方案。按
天分组
,将K-W测试作为列表列进行拟合,然后
将测试范围扩大

库(tidyverse)
图书馆(扫帚)
d%>%
分组单位(天)%>%
总结(拟合=列表(kruskal.测试(值组)%>%tidy))%>%
unnest_加宽(适合)
输出:

#一个tible:2 x 5
日统计p值参数法
1 0.505 0.777 2 Kruskal-Wallis秩和检验
2 6.52 0.0384 2 Kruskal-Wallis秩和检验

您可以使用
rstatix
包,它提供了一个管道友好的框架来执行Kruskal-Wallis秩和测试。包装函数
kruskal.test()

库(rstatix)
图书馆(tidyverse)

Day您可以使用
rstatix
包,它提供了一个管道友好的框架来执行Kruskal-Wallis秩和测试。包装函数
kruskal.test()

库(rstatix)
图书馆(tidyverse)
白天
library(rstatix)
library(tidyverse)

Day<-c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2)
Group<-c("A","A","A","B","B","B","C","C","C","A","A","A","A","B","B","B","C","C","C")
Value<-c(4,4,6,5,3,4,5,5,3,6,6,6,5,3,3,3,2,5,2)

d<-data.frame(Day,Group,Value)

d %>% 
  group_by(Day) %>% 
  kruskal_test(Value ~ Group)
# A tibble: 2 x 7
    Day .y.       n statistic    df      p method        
* <dbl> <chr> <int>     <dbl> <int>  <dbl> <chr>         
1     1 Value     9     0.505     2 0.777  Kruskal-Wallis
2     2 Value    10     6.52      2 0.0384 Kruskal-Wallis