R:根据第 2 列中可能存在的值向量对第 1 列进行子集化

R: Subsetting column 1 based on vector of values potentially present in column 2

我有一个数据框 kegglist,我在下面显示了它的相关部分:

> kegglist[131:145,]
        V1       V2
131 A0AVT1 hsa04120
132 A0PJZ3 hsa00514
133 A1A4S6 hsa05100
134 A1A4Y4 hsa05145
135 A1L167 hsa04120
136 A2RTX5 hsa00970
137 A3KFT3 hsa04740
138 A4D0S4 hsa05146
139 A4D0S4 hsa04512
140 A4D0S4 hsa04510
141 A4D0S4 hsa05200
142 A4D0S4 hsa05222
143 A4D0S4 hsa05145
144 A4D2G3 hsa04740
145 A5D8V6 hsa04144

我还有一个向量 listx,其中包含 kegglistV1 中的一些但不是全部 ID:

> listx
[1] A1L167 A2RTX5 A3KFT3 A4D0S4

我想要做的是基于 kegglist$V1 中存在于 listx 中的 ID 的子集 kegglist$V2。因此,在此示例中,结果应如下所示:

> result
 [1] hsa04120 hsa00970 hsa04740 hsa05146 hsa04512 hsa04510 hsa05200 hsa05222 hsa05145

请注意,在真实数据中,并非listx中的所有ID都在kegglist$V1中连续找到。谢谢你的帮助。

我试过了

result <- kegglist$V1[kegglist$V2 %in% listx]

无济于事。

尝试: kegglist$V2[kegglist$V1 %in% listx]

或者: kegglist$V2[which(kegglist$V1 %in% listx)]