 <p>You can do the following:</p> <pre><code>library(dplyr) library(stringr) library(lazyeval) df %&gt;% mutate(new = str_sub(V1, V2, V3)) # V1 V2 V3 new #1 ABBEDHH 4 5 ED #2 DEFGH 2 2 E #3 EFGF 1 2 EF #4 EEFD 1 1 E </code></pre> <p>Note that <code>dplyr</code> is made for working with <code>data.frame</code>s, so input and output should be data.frames, not atomic vectors.</p>