我有一个相对较大的数据框(大约2000 x 50)和一个列表(大小约为250)。我想查找并选择包含列表中任何ID的行,但是这需要通过部分字符串匹配来实现,因为数据帧包含连接成更大字符串的ID(甚至可能带注释)
因此数据框中的关联列如下所示:
[1] A0AV96-2;A0AV96 A0AVT1;A0AVT1-2 A1A5D9-2;A1A5D9 A1L0T0
[5] Q8IVF6;A2A2Z9 A8K2U0 B0FP48 B5MCY1
[9] Q99613-2;Q99613;B5ME19 B9A064;P0CG04 CON__A2AB72 CON__O76015;O76015
[13] CON__O95678;O95678 CON__P00761 CON__P01966 CON__P02533;P02533
[17] CON__P02538;P02538 CON__P02768-1;P02768;P02768-2 CON__P02769 CON__P04258;P02461;P02461-2
...我想要匹配的ID列表只包含我想要隔离的ID的字符值。
所以我的问题是如何在数据框中选择包含目标列表中ID的行?根据这里的一些答案,我提出了以下解决方案;
raw.ind <- Reduce(union, lapply(target.list, function(a) which(grepl(a, df$IDs))))
但我不确定它是否是&#34;对&#34;这样做的方法,或者是否有其他/更好的解决方案。