首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算多个群分裂的wilcoxon检验并保留原始群信息的整齐方法

计算多个群分裂的wilcoxon检验并保留原始群信息的整齐方法
EN

Stack Overflow用户
提问于 2022-09-05 22:12:24
回答 1查看 61关注 0票数 1

我正在寻找一种在保留原始组信息的同时使用group_split()summarise()语法的方法。我见过一些以前的页面,如这里这里使用这些方法,但它们不保留分组信息。有办法这样做吗?当然,我可以加入数据,但我希望避免使用这种方法。

代码语言:javascript
复制
> set.seed(22)
> # Create fake data
> flavor <- data.frame(
+   temperature = sample(x = c('hot','cold'), size = 500, replace = TRUE),
+   color = sample(c('red','blue','green'), 500, TRUE),
+   texture = sample(c('crumbly', 'crispy', 'wet', 'soft'), 500, TRUE),
+   flavor = sample.int(n = 100, size = 500, replace = TRUE)
+ )
> 
> head(flavor, 10)
   temperature color texture flavor
1         cold   red    soft     47
2          hot   red crumbly      2
3         cold  blue  crispy     28
4         cold  blue    soft     36
5         cold  blue crumbly     69
6         cold   red    soft     49
7         cold  blue    soft    100
8          hot  blue crumbly     42
9          hot  blue    soft     93
10         hot green     wet     47

使用基本拆分+映射(工作,但不保留原始组信息)

代码语言:javascript
复制
> flavor %>%
+   group_by(color, texture) %>%
+   mutate(subsets = cur_group_id()) %>%
+   ungroup() %>%
+   base::split(.$subsets) %>%
+   purrr::map(~ wilcox.test(flavor ~ temperature, data = .)) %>%
+   purrr::map_dfr(~ broom::tidy(.))
# A tibble: 12 × 4
   statistic p.value method                                            alternative
       <dbl>   <dbl> <chr>                                             <chr>      
 1      237   0.687  Wilcoxon rank sum test with continuity correction two.sided  
 2      152.  0.866  Wilcoxon rank sum test with continuity correction two.sided  
 3      236.  0.696  Wilcoxon rank sum test with continuity correction two.sided  
 4      308   0.216  Wilcoxon rank sum test with continuity correction two.sided  
 5      256   0.281  Wilcoxon rank sum test with continuity correction two.sided  
 6      122   0.540  Wilcoxon rank sum test with continuity correction two.sided  
 7      244   0.742  Wilcoxon rank sum test with continuity correction two.sided  
 8      130.  0.0393 Wilcoxon rank sum test with continuity correction two.sided  
 9      238.  0.317  Wilcoxon rank sum test with continuity correction two.sided  
10      360.  0.345  Wilcoxon rank sum test with continuity correction two.sided  
11       75   0.0292 Wilcoxon rank sum test with continuity correction two.sided  
12      219   0.149  Wilcoxon rank sum test with continuity correction two.sided  
There were 12 warnings (use warnings() to see them)

用类似于总结的方法?(保留组信息,但统计数据不正确)

代码语言:javascript
复制
> flavor %>%
+   group_by(color, texture) %>%
+   summarise(output = wilcox.test(flavor ~ temperature, data = .) %>% broom::tidy())
`summarise()` has grouped output by 'color'. You can override using the `.groups` argument.
# A tibble: 12 × 3
# Groups:   color [3]
   color texture output$statistic $p.value $method                                           $alternative
   <chr> <chr>              <dbl>    <dbl> <chr>                                             <chr>       
 1 blue  crispy            30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 2 blue  crumbly           30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 3 blue  soft              30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 4 blue  wet               30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 5 green crispy            30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 6 green crumbly           30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 7 green soft              30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 8 green wet               30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
 9 red   crispy            30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
10 red   crumbly           30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
11 red   soft              30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   
12 red   wet               30656.    0.721 Wilcoxon rank sum test with continuity correction two.sided   

使用group_split (与第一个问题相同)

代码语言:javascript
复制
> flavor %>%
+   group_split(color, texture) %>%
+   map_dfr(~wilcox.test(flavor ~ temperature, data = .) %>% broom::tidy())
# A tibble: 12 × 4
   statistic p.value method                                            alternative
       <dbl>   <dbl> <chr>                                             <chr>      
 1      237   0.687  Wilcoxon rank sum test with continuity correction two.sided  
 2      152.  0.866  Wilcoxon rank sum test with continuity correction two.sided  
 3      236.  0.696  Wilcoxon rank sum test with continuity correction two.sided  
 4      308   0.216  Wilcoxon rank sum test with continuity correction two.sided  
 5      256   0.281  Wilcoxon rank sum test with continuity correction two.sided  
 6      122   0.540  Wilcoxon rank sum test with continuity correction two.sided  
 7      244   0.742  Wilcoxon rank sum test with continuity correction two.sided  
 8      130.  0.0393 Wilcoxon rank sum test with continuity correction two.sided  
 9      238.  0.317  Wilcoxon rank sum test with continuity correction two.sided  
10      360.  0.345  Wilcoxon rank sum test with continuity correction two.sided  
11       75   0.0292 Wilcoxon rank sum test with continuity correction two.sided  
12      219   0.149  Wilcoxon rank sum test with continuity correction two.sided  
EN

回答 1

Stack Overflow用户

发布于 2022-09-05 22:39:56

您可以使用rstatix包,该包旨在使用tidyverse执行多个统计测试。

代码语言:javascript
复制
library(rstatix)
library(tidyverse)

flavor |>
  group_by(color, texture) |>
  wilcox_test(flavor ~ temperature)

# A tibble: 12 x 9
#   color texture .y.    group1 group2    n1    n2 statistic      p
# * <chr> <chr>   <chr>  <chr>  <chr>  <int> <int>     <dbl>  <dbl>
# 1 blue  crispy  flavor cold   hot       21    21      237  0.687 
# 2 blue  crumbly flavor cold   hot       21    14      152. 0.866 
# 3 blue  soft    flavor cold   hot       21    21      236. 0.696 
# 4 blue  wet     flavor cold   hot       22    23      308  0.216 
# 5 green crispy  flavor cold   hot       26    24      256  0.281 
# 6 green crumbly flavor cold   hot       20    14      122  0.54  
# 7 green soft    flavor cold   hot       23    20      244  0.742 
# 8 green wet     flavor cold   hot       20    21      130. 0.0393
# 9 red   crispy  flavor cold   hot       25    23      238. 0.317 
#10 red   crumbly flavor cold   hot       23    27      360. 0.345 
#11 red   soft    flavor cold   hot       16    17       75  0.0292
#12 red   wet     flavor cold   hot       18    19      219  0.149
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73615079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档