使用R语言比较多个值与向量的值并返回向量。

4
我有一个向量"A",我想要检查A的每个元素是否等于第二个向量"Targets"中的任何一个元素。我希望返回一个逻辑值向量,其长度与A相同。
同样的问题在这里提到:这里。这里有一个相关讨论:如何测试向量是否包含特定值,但我不知道如何将其应用到我的问题上,因为我想要一个向量作为输出,而不是单个布尔值。
以下是示例代码:
#example data
A <- c(rep("A",4),rep(c("B","C"),8))
Targets <- c("A","C","D")

我希望得到一个向量,用于判断A的每个元素是否至少等于Targets中的一个元素。例如,这将生成一个相同的向量:
result <- c(rep("TRUE",4), rep(c("FALSE","TRUE"), 8))

如果相关的话,最终向量A会很长(约20000个元素),向量Targets将包含大约30个元素。


我感到困惑,因为帮助我的答案现在已经消失了。 它是: sapply(A,%in%,Targets) 或者 sapply(A,function(x) x %in% Targets) - Kastany
4
我删除了我的回答,因为正如尼古拉在评论中指出的那样,它使事情变得更加复杂。你只需要使用A %in% Targets,也就是说,不需要使用额外的sapply循环。 - talat
1个回答

8

请尝试:

 A %in% Targets
< p > %in% 函数可以告诉你第一个参数的每个元素是否等于第二个参数中的任何一个元素,这正是您所需要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接