R语言中如何检查列表是否不存在多个指定元素
在R语言中检查列表是否不存在多个指定元素
好的,我来帮你解决这个问题。首先要明确,你这里提到的short和medium其实是列表的名称(键)(对应的值是10和20),所以我们需要针对列表的名称来做检查。下面是具体的实现方法:
1. 基础场景:检查多个名称是否都不存在
首先先定义你的列表:
list1 <- list('short' = 10, 'medium' = 20, 'long' = 200)
然后定义你要检查的目标名称向量:
target_names <- c('short', 'medium')
要判断这些目标名称全部都不存在于列表中,可以结合%in%操作符、取反!和all()函数:
# 检查所有目标名称是否都不在list1的名称里 all(!(target_names %in% names(list1)))
在你的例子中,因为short和medium都存在于list1的名称中,所以这个代码会返回FALSE。如果换成目标名称是c('extra', 'tiny'),就会返回TRUE。
2. 扩展场景:检查至少一个名称不存在
如果你需要的是判断至少有一个目标名称不存在,只需要把all()换成any():
any(!(target_names %in% names(list1)))
比如如果目标是c('short', 'extra'),这个代码会返回TRUE(因为extra不存在)。
3. 如果要检查列表的值是否不存在多个指定元素
如果你的需求是检查列表的值是否不存在多个指定元素,逻辑类似,只需要把names(list1)换成unlist(list1)(把列表转成向量):
target_values <- c(10, 30) # 检查所有目标值是否都不在list1的值里 all(!(target_values %in% unlist(list1)))
这个例子中,10存在但30不存在,所以返回FALSE;如果目标是c(50, 60),就会返回TRUE。
内容的提问来源于stack exchange,提问作者Hispalis Guadal
相关产品推荐
相关产品推荐

