 <p>if you know how to do it for one <code>data.frame</code> then just use <code>lapply</code> on your list of <code>dats.frames</code></p> <p>e.g. </p> <pre><code>#create your new columns function as it would work for one data.frame foo &lt;- function(DF){ DF$new1 &lt;- distm(x,y)....etc DF$new2 &lt;- .......etc DF$new3 &lt;- cor(x,y).......etc return(DF) } </code></pre> <p>Then lapply over the list to return a list of <code>data.frames</code> with the new columns:</p> <pre><code>DFlist &lt;- list(DF1, DF2, DF3) lapply(DFlist, foo) </code></pre>