检测R中的空列表

检测R中的空列表,r,list,string-length,R,List,String Length,我正在计算一些存储在列表中的值,该列表被附加到一个现有的列表中,称为结果。在某些情况下,计算返回TRUE。在这种情况下,我希望从列表中删除返回TRUE的元素: my_list $`0` [1] TRUE $`1` [1] TRUE my_list = lapply(list(my_list), function(x){Filter(Negate(isTRUE), x)}) > my_list [[1]] named list() 这将返回一个空列表。现在我想检查一下: 如果列表为空

我正在计算一些存储在列表中的值,该列表被附加到一个现有的列表中,称为结果。在某些情况下,计算返回TRUE。在这种情况下,我希望从列表中删除返回TRUE的元素:

my_list
$`0`
[1] TRUE

$`1`
[1] TRUE


my_list = lapply(list(my_list), function(x){Filter(Negate(isTRUE), x)})
> my_list
[[1]]
named list()
这将返回一个空列表。现在我想检查一下:

如果列表为空-不执行任何操作 如果列表不是空的,请将其附加到结果 问题是当我检查

length(my_list) >0
[1] TRUE
如何检测列表是否为空?

试试以下方法:

#Data
my_list <- list('0'=T,'1'=T)
my_list = lapply(list(my_list), function(x){Filter(Negate(isTRUE), x)})
#Code
lapply(my_list, function(x) length(x)>0)
试试这个:

#Data
my_list <- list('0'=T,'1'=T)
my_list = lapply(list(my_list), function(x){Filter(Negate(isTRUE), x)})
#Code
lapply(my_list, function(x) length(x)>0)
我们可以使用长度来获得每个列表元素的逻辑输出

我们可以使用长度来获得每个列表元素的逻辑输出


空的可能并不总是人们所期望的。rlang is_empty函数可能会有所帮助

长度列表>0表示为假

lengthlistNA>0表示为真

然而,lengthlistNULL>0给出了FALSE


空的可能并不总是人们所期望的。rlang is_empty函数可能会有所帮助

长度列表>0表示为假

lengthlistNA>0表示为真

然而,lengthlistNULL>0给出了FALSE

也许过滤方法对您有用

> Filter(length, my_list)
list()
也许过滤方法对您有用

> Filter(length, my_list)
list()

在这种情况下,预期的输出是什么。是否需要我的列表[Length我的列表>0]在这种情况下,预期输出是什么。是否需要我的列表[长度我的列表>0]
[[1]]
[1] FALSE
[[2]]
[1] TRUE
[[3]]
[1] FALSE
[[4]]
[1] FALSE
[[5]]
[1] TRUE
[[6]]
[1] FALSE
> Filter(length, my_list)
list()