如何通过不同的组循环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