【问题标题】:Comparing character vectors in R to find unique and/or missing values比较 R 中的字符向量以查找唯一值和/或缺失值
【发布时间】:2012-02-28 01:08:11
【问题描述】:

我有两个字符向量,x 和 y。

x <- c("a", "b", "c", "d", "e", "f", "g")
y <- c("a",      "c", "d", "e",      "g")

x 中的值永远不会重复(即它们都是唯一的)。向量 y 也是如此。我的问题是,如何让 R 比较两个向量,然后告诉我 y 相对于 x 缺少哪些元素?否则,我希望 R 告诉我 y 中缺少“b”和“f”。

(注意,在我的真实数据中,x 和 y 各自包含几千个观察值,这就是我想以编程方式执行此操作的原因。可能有一个非常简单的答案,但我不确定要搜索什么在 R 帮助文件中)。

感谢任何可以提供帮助的人!

【问题讨论】:

标签: r coding-style character-encoding statistics


【解决方案1】:
setdiff(x,y)

将为您完成这项工作。

【讨论】:

  • 值得注意的是setdiff(x,y)与setdiff(y,x)不同。前者会告诉你x 中有什么,而y 中没有,而后者会告诉你y 中有什么,而x 中没有。
【解决方案2】:

我认为这应该可行:

x[!(x %in% y)]

首先它检查所有不在 y 中的 x,然后将其用作原始的索引。

【讨论】:

    【解决方案3】:
    > x[!x %in% y]
    [1] "b" "f"
    

    或:

    > x[-match(y,x)]
    [1] "b" "f"
    > 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      相关资源
      最近更新 更多