比较两个匹配名称的字符向量

Roc*_*ock 5 r

我有两个具有不同名称和值集的字符向量:

x <- c("a", "b", "c", "d", "e")
names(x) <- c("foo", "bar", "baz", "qux", "grault")

y <- c("c", "a", "d", "b")
names(y) <- c("bar", "foo", "qux", "corge")
Run Code Online (Sandbox Code Playgroud)

有没有办法比较x,y所以我们知道它们对应于名称的值bar是不同的,因为这里x.bar = "b"y.bar = "c"?请注意,这些名字并未订购.我试过setdiff,which(x != y)但没有人给我正确的答案.谢谢!

Mat*_*rde 8

你可以这样做:

x[intersect(names(x), names(y))] == y[intersect(names(x), names(y))]
Run Code Online (Sandbox Code Playgroud)

  • 此外,虽然看起来很奇怪,但是`x [nms < - intersect(names(x),names(y))] == y [nms]`也可以. (2认同)