我有一个包含空列表列的数据框,类似于此:
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_if
。NULL
在中不存在vector
。因此,条件应该是检查该列是否为alist
以及all
元素是否为NULL
(is.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] 删除。
我来说两句