将测试结果重新格式化为数据框

时间:2018-12-14 00:09:11

标签: r correlation

我正在努力将cor.test()的结果重新格式化为data.frame。 结果格式为列表,但不能简单地写入数据框,因为unlist()似乎无法理解“ double”类型的项目。

结果如下所示: Results cor.test()

现在,我想将多个cor.test的结果重新格式化为一个以data.name作为列名的数据框,并将所有其他列表项放在单独的行中。然后应该看起来像这样:

                 data.name1      data.name2     
   statistic     5.390954        xxxxxxxxx
   p.value       7.00845e-08     xxxxxxxxx
   estimate      0.1612965       xxxxxxxxx
   null.value    0               xxxxxxxxx
   alternative   two.sided       xxxxxxxxx
   method        kendall         xxxxxxxxx

很抱歉这个初学者的问题,但是我真的很难以某种方式得到这个答案,并且已经研究了几个小时。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

整洁的方法:

library(broom)
library(purrr)

l <- list(
  c1 = cor.test( ~ hp + qsec, mtcars),
  c2 = cor.test( ~ hp + mpg, mtcars)
)

map_dfr(l, tidy, .id = 'id')
# A tibble: 2 x 9
  id    estimate statistic p.value parameter conf.low conf.high method
  <chr>    <dbl>     <dbl>   <dbl>     <int>    <dbl>     <dbl> <chr> 
1 c1      -0.708     -5.49 5.77e-6        30   -0.848    -0.477 Pears~
2 c2      -0.776     -6.74 1.79e-7        30   -0.885    -0.586 Pears~
# ... with 1 more variable: alternative <chr>

在示例输出中,所有内容都必须强制转换为字符,这不是一种很好的方法来存储数字结果,例如回归系数和p值。