向量具有非结构化元素时的%in%

时间:2018-04-05 17:09:13

标签: r

我想要像

那样对数据框进行子集化
df$var1

tomatch是包含一些具有单个值的元素(例如Gene1)的向量,以及一些具有多个元素且具有分隔符“///”的元素(例如Gene15 /// Gene11)。 c(Gene1, Gene2, Gene3...)是名称的矢量:create table xxxx AS select t1.XXX, t2.YYY, t3.ZZZ from DB_AA..P1 t1 INNER JOIN DB_TT..TQ t5 on (t5.NR = t1.NR) LEFT JOIN DB_II..GG t2 ON (t2.LS = t1.LS) LEFT JOIN DB_AA..PP t3 ON (t3.NR= t1.NR) 。 谢谢。

1 个答案:

答案 0 :(得分:1)

want <- df[sapply(strsplit(df$var1, ' /// '), 
                  function(x) any(x %in% tomatch)), ]

    ID              var1
2   2B             Gene2
3   3C             Gene3
4   4D             Gene4
5   5E Gene15 /// Gene11
6   6F             Gene6
7   7G             Gene7
8   8H             Gene8
9   9I             Gene9
10 10J            Gene10