假设我们有以下列表结构。
bla <- list(lda = list(list(auc1 = 0.85, auc2 = 0.56), list(auc1 = 0.65, auc2 = 0.72)),
j48 = list(list(auc1 = 0.99, auc2 = 0.81), list(auc1 = 0.61, auc2 = 0.85)),
c50 = list(list(auc1 = 0.92, auc2 = 0.59), list(auc1 = 0.68, auc2 = 0.80)))
所需的输出是一个数据框架,结构如下:
auc1 auc2
lda 0.85 0.56
lda 0.65 0.72
j48 0.99 0.81
j48 0.61 0.85
c50 0.92 0.59
c50 0.68 0.80
我的尝试粘贴在下面。我能够使用调用分别purrr每个内部列表。
bla[[1]] %>%
map(., function(x) c(auc1 = x[["auc1"]],
auc2 = x[["auc2"]])) %>%
map_dfr(., as.list)
任何想法都是感激的。
竟然只用 bind_rows
给你你想要的东西。
dplyr::bind_rows(bla)
这将返回一个 tibble,而 tibbles 没有 rownames。
你可以在基础R中使用 do.call
+ rbind
.
do.call(rbind, unlist(bla, recursive = FALSE))
# auc1 auc2
#lda1 0.85 0.56
#lda2 0.65 0.72
#j481 0.99 0.81
#j482 0.61 0.85
#c501 0.92 0.59
#c502 0.68 0.8
我们也可以使用 rbindlist
library(data.table)
rbindlist(bla)