删除空列表列

乍得·佩尔捷

我有一个包含空列表列的数据框,类似于此:

null_list <- list(NULL, NULL, NULL) %>% enframe()
null_list
#   name value 
#  <int> <list>
#1     1 <NULL>
#2     2 <NULL>
#3     3 <NULL>

我想删除所有只包含NULL值的列,例如上面的“值”列,因为当我尝试unnest_wider这些列时(作为循环的一部分),我收到错误消息“替换长度为零”。

阿克伦

我们可以使用select_ifNULL在中不存在vector因此,条件应该是检查该列是否为alist以及all元素是否为NULLis.null),!select所有其他列取反(

library(dplyr)
library(purrr)
null_list %>% 
    select_if(~ !(is.list(.) && all(map_lgl(., is.null))))
# A tibble: 3 x 1
#   name
#  <int>
#1     1
#2     2
#3     3

注意:此检查,如果在所有的价值list都是NULL,然后将其删除这些列

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章