假设我有一个包含命名元素的列表.这些元素都是碎石. 我想把这个列表转换成一个单独的Tibble.

Purrr的list_rbind个作品,有一个关键的缺点(至少对我来说是这样),它go 掉了 元素,它是0行的Tibble(尽管它是一个命名元素).

library(tidyverse)

li <- list("a"=tibble(x=1), "b"=tibble(x=2), "c"=tibble(x=NULL))
li
#> $a
#> # A tibble: 1 × 1
#>       x
#>   <dbl>
#> 1     1
#> 
#> $b
#> # A tibble: 1 × 1
#>       x
#>   <dbl>
#> 1     2
#> 
#> $c
#> # A tibble: 0 × 0


li %>% purrr::list_rbind(., names_to="element_names")

#> # A tibble: 2 × 2
#>   element_names     x
#>   <chr>         <dbl>
#> 1 a                 1
#> 2 b                 2

我所期待的结果将是

#>   element_names     x
#>   <chr>         <dbl>
#> 1 a                 1
#> 2 b                 2
#> 3 c                 NA (or NULL?)

有什么帮助吗?非常感谢.

推荐答案

您可以使用enframe()unnest():

library(tibble)
library(tidyr)

enframe(li, name = "element_names")  |>
  unnest(value, keep_empty = TRUE)

# A tibble: 3 × 2
  element_names     x
  <chr>         <dbl>
1 a                 1
2 b                 2
3 c                NA

R相关问答推荐

如果窗口在CLARME或集团之外,则有条件领先/滞后滚动总和返回NA

从R中的另一个包扩展S3类的正确方法是什么

如何根据条件计算时差(天)

如何根据组大小应用条件过滤?

使用case_match()和char数组重新编码值

用关联字符串替换列名的元素

如何通过ggplot2添加短轴和删除长轴?

在ggplot2的框图中绘制所有级别的系数

SHINY:使用JS函数应用的CSS样式显示HTML表格

将一个字符串向量调整为与其他字符串向量完全相同的大小

使用R中的dist()迭代ID匹配的欧几里德距离

自动STAT_SUMMARY统计与手动标准误差之间的差异

使用shiny 中的所选要素行下拉菜单

如果条件匹配,则使用Mariate粘贴列名

使用geom_sf跨越日期线时的闭合边界

如何根据其他列中的两个条件来计算数据帧中的行之间的差异?

从矩阵创建系数图

我有2011-2022年的年度数据.如何计算最低年份和最高年份之间的差额?

对数据帧中的列进行子集设置以通过迭代创建新的数据帧

如何从矩阵绘制环弦图