在R语言中如何判断一个向量是否包含另一个向量的至少一个元素?
判断向量是否包含另一向量的至少一个元素
最简便直接的方式是用any()函数配合%in%运算符:
vowels <- c("a", "e", "i", "o", "u", "y") word <- c("c", "a", "t") # 判断word中是否存在至少一个vowels里的元素 any(word %in% vowels) # 输出结果:TRUE
原理说明
word %in% vowels会生成一个逻辑向量,每个元素对应word中的元素是否存在于vowels中,这里得到的是FALSE, TRUE, FALSEany()函数会检查逻辑向量中是否有至少一个TRUE,只要存在就返回TRUE,完美匹配需求
另一种可选方法
也可以通过计算两个向量的交集长度来判断:
length(intersect(word, vowels)) > 0 # 输出结果:TRUE
这种方法通过intersect()获取两个向量的共同元素,只要交集长度大于0,就说明存在匹配元素。不过相比第一种方法,any(word %in% vowels)更直观高效。
内容的提问来源于stack exchange,提问作者Deeproad
相关产品推荐
相关产品推荐

