我正在努力将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
很抱歉这个初学者的问题,但是我真的很难以某种方式得到这个答案,并且已经研究了几个小时。非常感谢您的帮助。
答案 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值。