按名称 cbind R 中的命名向量

ltr*_*ltr 6 r vector cbind

我有两个与这些类似的命名向量:

x <- c(1:5)
names(x) <- c("a","b","c","d","e")

t <- c(6:10)
names(t) <- c("e","d","c","b","a")
Run Code Online (Sandbox Code Playgroud)

我想将它们结合起来以获得以下结果:

  x  t
a 1 10
b 2  9
c 3  8
d 4  7
e 5  6
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我运行cbind(x,t)的结果只是它们结合他们不顾的名字顺序t,并只保留那些x。给出以下结果:

  x  t
a 1  6
b 2  7
c 3  8
d 4  9
e 5 10
Run Code Online (Sandbox Code Playgroud)

我很确定一定有一个简单的解决方案,但我找不到它。由于这篇文章是一个冗长乏味的循环的一部分(而且我正在处理的向量要长得多),因此让计算选项最不复杂且计算速度更快是很重要的。

akr*_*run 11

我们可以使用names'x' 来更改 't' 元素的顺序,并cbind使用 'x'

cbind(x, t = t[names(x)])
#  x  t
#a 1 10
#b 2  9
#c 3  8
#d 4  7
#e 5  6
Run Code Online (Sandbox Code Playgroud)

  • 我确定这是非常明显的!非常感谢 (3认同)