R语言实现dplyr::bind_rows()逆操作 将tibble还原为原始列表
问题描述
现有嵌套列表对象,流程中需先将其转换为表格格式,后续还要将表格还原为初始列表状态。
列表转表格的示例代码如下:
li <- list(list(id = 1, v = 2), list(id = 1, v = 3)) tab <- dplyr::bind_rows(li) tab # A tibble: 2 × 2 id v <dbl> <dbl> 1 1 2 2 1 3
上述代码通过dplyr::bind_rows()将列表li按行合并得到tibble格式表格tab,需实现tab到原始li结构的还原。
还原方案
- 旧方案(不推荐新代码使用):早期可使用
purrr::transpose()实现还原,目前该函数已被标记为*superseded(待替代)*状态,官方不建议在新代码中使用,优先选择更新的替代方案。 - 最新可用方案:先对表格对象调用
as.list(),再传入purrr::list_transpose()即可完成还原,对应代码及运行结果如下:
purrr::list_transpose(as.list(tab)) [[1]] [[1]]$id [1] 1 [[1]]$v [1] 2 [[2]] [[2]]$id [1] 1 [[2]]$v [1] 3
内容的提问来源于stack exchange,提问作者olivroy
相关产品推荐
相关产品推荐

