【问题标题】:R compare multiple values with vector and return vector [duplicate]R将多个值与向量进行比较并返回向量[重复]
【发布时间】: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


【解决方案1】:

试试吧:

 A %in% Targets

%in% 函数告诉您第一个参数的每个元素是否等于第二个参数的一个元素,这正是您要寻找的。​​p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多