比较R中的字符向量以查找唯一和/或缺失值

时间:2012-02-06 15:04:42

标签: r coding-style character-encoding statistics

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

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

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

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

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

3 个答案:

答案 0 :(得分:34)

setdiff(x,y)

将为你做好工作。

答案 1 :(得分:9)

> x[!x %in% y]
[1] "b" "f"

或:

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

答案 2 :(得分:6)

我认为这应该有效:

x[!(x %in% y)]

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