【问题标题】:cbind named vectors in R by name按名称在 R 中 cbind 命名向量
【发布时间】:2017-08-12 11:24:44
【问题描述】:

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

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

t <- c(6:10)
names(t) <- c("e","d","c","b","a")

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

  x  t
a 1 10
b 2  9
c 3  8
d 4  7
e 5  6

不幸的是,当我运行cbind(x,t) 时,结果只是按顺序组合它们,它们忽略了t 的名称,只保留了x 的名称。给出以下结果:

  x  t
a 1  6
b 2  7
c 3  8
d 4  9
e 5 10

我很确定一定有一个简单的解决方案,但我找不到。由于这段话是一个冗长乏味的循环的一部分(而且我正在使用的向量要长得多),因此具有最少的复杂性和更快的计算选项很重要。

【问题讨论】:

    标签: r vector cbind


    【解决方案1】:

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

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

    【讨论】:

    • 我确信这非常明显!非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2016-06-08
    • 2016-11-13
    • 2021-12-29
    相关资源
    最近更新 更多