cbind именованные векторы в R по имени

У меня есть два именованных вектора, похожие на эти:

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

Я почти уверен, что должно быть простое решение, но я не могу его найти. Поскольку этот отрывок является частью длинного и утомительного цикла (а векторы, с которыми я работаю, намного длиннее), важно иметь наименее запутанные и более быстрые для вычисления варианты.


person ltr    schedule 12.08.2017    source источник


Ответы (1)


Мы можем использовать 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
person akrun    schedule 12.08.2017
comment
Я был уверен, что это было супер очевидно! Большое спасибо - person ltr; 12.08.2017