在R中,如何根据另一个列表限制列表列表?

时间:2014-04-10 02:17:48

标签: r list

我觉得这一定比我做的更简单,但由于某种原因我甚至在弄清楚如何提出这个问题时遇到了一些实际困难 - 请随意提出一些更好的术语在这里,因为我觉得我甚至让自己感到困惑。我对R来说很新,我觉得我很困惑,因为我一直试图通过Python来实现这一目标。

以下是我试图解决的问题:我有一个向量列表(GO_list)和另一个向量(目标)。我只是想创建一个新的向量列表(NewList),它只包含来自GO_list的列表,如果它们匹配我的其他列表中的一个术语(目标)。

例如:

>GO_list[1:5]

$ENSCPOP00000019422
[1] "GO:0006821" "GO:0055085" "GO:0006897"
$ENSRNOP00000017654
[1] "GO:0000165" "GO:0007169" "GO:0007399"
$ENSMUSP00000000365
[1] "GO:0006351" "GO:0006355" "GO:0006974" "GO:0007049" "GO:0008150" "GO:0040008"
 $ENSCPOP00000019426
[1] "GO:0006470" "GO:0016311"
$ENSCPOP00000019424
[1] "GO:0006886"

>Targets[1:5]
[1] "ENSMUSP00000104347" "ENSMUSP00000081003" "ENSMUSP00000134911" 
[3] "ENSMUSP00000081001" "ENSMUSP00000081002"

因此,如果ENSCPOP00000019422在目标中,我只想在NewList中包含GO_list [1]。

这个问题有意义吗?

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

这样的东西?

> x <- list(A=1, B=2, C=3, D=4, E=5)
> target<-list("C","D")
> x[names(x)%in%target]
$C
[1] 3

$D
[1] 4