R finding string patterns of a vector in elements of another (by pairs)
<p>I have a character vector</p>

<pre><code>c1 &lt;- c("BEL","BEL","BEL","BEL")
</code></pre>

<p>and another character vector of same length</p>

<pre><code>c2 &lt;- c(" BEL-65_DRe-I_1p:BEL;_LTR_Retrotransposon;_Transposable_Element;_Nonautonomous;_BEL-65_DRe-I", "L1-2_NN_3p:L1;_Non-LTR_Retrotransposon;_Transposable_Element;_L1-2_NN", "BEL-13_CQ-I_1p:BEL;_LTR_Retrotransposon;_Transposable_Element;_BEL-13_CQ_;_BEL-13_CQ-LTR;_BEL-13_CQ-I", "BEL-31_CQ-I_1p:BEL;_LTR_Retrotransposon;_Transposable_Element;_BEL-31_CQ_;_BEL-31_CQ-LTR;_BEL-31_CQ-I", "Gypsy-22_CQ-I_1p:Gypsy;_LTR_Retrotransposon;_Transposable_Element;_Gypsy-22_CQ_;_Gypsy-22_CQ-LTR;_Gypsy-22_CQ-I")
</code></pre>

<p>I want to know if each string in <code>c1</code> is found in <code>c2</code> at the same index (ignoring case), i.e. if <code>c1[1]</code> is found in<code>c2[1]</code>, <code>c1[2]</code> in <code>c2[2]</code>, and so on.
In practice, the vectors can have millions of elements.</p>

<p>My current solution is </p>

<pre><code>test &lt;- Map(function(x,y) grepl(x,y, ignore.case = T), c1, c2)
</code></pre>

<p>But it's not vectorised, hence relatively slow. 
Is there a better solution?</p>