【发布时间】:2014-03-11 13:41:44
【问题描述】:
我想知道是否有一种简单的方法可以找到两个命名向量的交集并将结果输出到第三个命名向量。
就我而言,我有以下两个命名向量:
> test1
ATMG00010 ATMG00030 ATMG00040 ATMG00050 ATMG00060 ATMG00070
462 324 948 396 542 573
> test2
ATMG00010 ATMG00040 ATMG00070
0 0 0
有什么优雅的方法可以根据名称找到两个向量的交集,然后将 test1 的名称、值对输出到新的命名向量 test3 中?
即,
> 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 几乎一无所知,所以上面的代码是通过一整天的沉浸过程学习的。有没有更直接的方法来做到这一点?
谢谢!
【问题讨论】:
标签: r vector intersection named