【发布时间】:2021-09-15 09:33:34
【问题描述】:
我有一个向量“A”,对于 A 的每个元素,我想检查它是否等于第二个向量“目标”中的任何元素。我想要一个长度为 A 的逻辑值向量作为返回值。
here 也提到了同样的问题。这是how to test if a vector contains a specific value 的相关讨论,但我不知道如何将其应用于我的问题,因为我想要一个向量作为输出而不是单个布尔值。
这里是示例代码:
#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) -
我删除了我的答案,因为它使事情变得复杂,正如 nicola 在评论中指出的那样。您需要做的就是
A %in% Targets,即不需要使用sapply进行额外循环。
标签: r