将 Wilcox 测试输出转换为数据框 R

Posted

技术标签:

【中文标题】将 Wilcox 测试输出转换为数据框 R【英文标题】:Converting Wilcox Test Output to Data Frame R 【发布时间】:2022-01-23 07:49:27 【问题描述】:

我正在使用以下代码在 R 中迭代 Mann-Whitney 测试:

x <- replicate(100, 
  sample <- sample_n(foldchange_all_df, 25)
  sample_nm <- as.numeric(unlist(sample))
  test <- wilcox.test(sample_nm,baselist_nm, exact = FALSE)
)

我得到一个具有以下输出格式的列表输出 100 次:

    Wilcoxon rank sum test with continuity correction
    data:  sample_nm and baselist_nm
    W = 209, p-value = 0.04566
    alternative hypothesis: true location shift is not equal to 0

我知道扫帚包的功能

tidy()

将此输出放入单个测试的数据帧格式中。

如何将列表中的所有 100 个输出组合到一个数据框中,以便获取所有 p 值?

【问题讨论】:

【参考方案1】:

如果你在replicate 中使用simplify = FALSE,你会得到一个列表,你可以用tidy 函数映射它然后rbind。 map_dfr 一步完成映射和 rbind-ing。

library(broom)
library(purrr)

out <- 
  replicate(100, 
    wilcox.test(runif(100),runif(100), exact = FALSE)
    , simplify = FALSE) %>% 
    map_dfr(tidy)

head(out)
#> # A tibble: 6 × 4
#>   statistic p.value method                                           alternative
#>       <dbl>   <dbl> <chr>                                            <chr>      
#> 1      5087  0.833  Wilcoxon rank sum test with continuity correcti… two.sided  
#> 2      4564  0.287  Wilcoxon rank sum test with continuity correcti… two.sided  
#> 3      4063  0.0221 Wilcoxon rank sum test with continuity correcti… two.sided  
#> 4      4781  0.593  Wilcoxon rank sum test with continuity correcti… two.sided  
#> 5      5751  0.0667 Wilcoxon rank sum test with continuity correcti… two.sided  
#> 6      5221  0.590  Wilcoxon rank sum test with continuity correcti… two.sided

由reprex package (v2.0.1) 于 2021 年 12 月 21 日创建

【讨论】:

以上是关于将 Wilcox 测试输出转换为数据框 R的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据框输出为文本(字符串)混合值和列名R

将字典转换为数据框作为python中的预期输出

将嵌套的 json 转换为具有特定输出的数据框

如何将python字典转换为所需的数据框输出? [复制]

53 进制转换

将两列强制转换为 R 中的 1 列因子和 1 列对应值用于数据框