首页 > 解决方案 > 为什么在使用过滤器时将 tibble 中的命名列表列转换为列表

问题描述

有一个包含命名列表 val 列的小标题。

tibble = tibble::tibble(val = list(list(1,2), list(3,2), list("a","b")),
                        name = c("a", "b", "c"))
names(tibble$val) = tibble$name
tibble
# A tibble: 3 x 2
  val          name 
  <named list> <chr>
1 <list [2]>   a    
2 <list [2]>   b    
3 <list [2]>   c    

但是,使用过滤器时,val 列中的名称会消失。你能告诉我如何避免这种情况吗?

  tibble %>% 
    dplyr::filter(name %in% c("a", "b"))  
# A tibble: 2 x 2
  val        name 
  <list>     <chr>
1 <list [2]> a    
2 <list [2]> b  

标签: rdplyr

解决方案


推荐阅读