Бих искал да знам дали има лесен начин да намеря пресечна точка на два наименувани вектора и да изведа резултата на трети, наименуван вектор.
В моя случай имам следните два именувани вектора:
> 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]]]) }
Това ми дава следния резултат:
тест3 [1] 462 948 573
Тъй като знам само малко от Python и почти нищо за R, горният код беше научен чрез целодневен процес на потапяне. Има ли по-прост начин да направите това?
Благодаря ти!