Я хотел бы знать, есть ли простой способ найти пересечение двух именованных векторов и вывести результат в третий именованный вектор.
В моем случае у меня есть следующие два названных вектора:
> test1
ATMG00010 ATMG00030 ATMG00040 ATMG00050 ATMG00060 ATMG00070
462 324 948 396 542 573
> test2
ATMG00010 ATMG00040 ATMG00070
0 0 0
Каков элегантный способ найти пересечение двух векторов на основе имен, а затем вывести имя, пару значений test1 в новый именованный вектор test3?
i.e.,
> test3
ATMG00010 ATMG00040 ATMG00070
462 948 573
Чтобы продолжить свою жизнь, я нашел промежуточное решение, которое выполнило свою работу, но результатом был не именованный вектор, а просто числовой вектор значений из сопоставленных имен в test1.
matched <- which(names(test1) %in% names(test2))
test3 <- rep(NA, length(test2))
for (i in 1:length(matched)) { test3[i] <- c(test1[[matched[i]]]) }
Это дает мне следующий результат:
test3 [1] 462 948 573
Поскольку я знаю лишь немного о python и почти ничего не знаю о R, приведенный выше код был изучен в течение всего дня процесса погружения. Есть ли более простой способ сделать это?
Спасибо!