R语言如何将含矩阵的嵌套列表转换为指定列的data.frame
R嵌套列表转指定结构数据框实现方法
方法1:纯基础R实现
不需要额外加载任何包,直接遍历列表拼接即可:
# 遍历处理每个列表元素,最后按行合并 result_df <- do.call(rbind, lapply(list1, function(elem) { data.frame( X = rep(elem$x, 2), elem$y, row.names = NULL # 可以去掉这行保留原AB/CD行名 ) }))
运行后得到的result_df直接符合要求,示例数据运行结果如下:
| X | VAL | LCI | UCI |
|---|---|---|---|
| 0.1 | 1 | 3 | 5 |
| 0.1 | 2 | 4 | 6 |
| 0.2 | 7 | 9 | 11 |
| 0.2 | 8 | 10 | 12 |
方法2:tidyverse简洁实现
依赖purrr和dplyr包,代码更简短:
library(purrr) library(dplyr) result_df <- list1 %>% map_dfr(~ tibble(X = rep(.x$x, 2), as_tibble(.x$y)))
如果需要将AB/CD行名作为单独列存储,修改代码如下即可:
result_df <- list1 %>% map_dfr(~ tibble( X = rep(.x$x, 2), group = rownames(.x$y), as_tibble(.x$y) ))
内容的提问来源于stack exchange,提问作者userq8957289475
相关产品推荐
相关产品推荐

