title: non equi join returns non existing column names
body: <p>I am unable to do a basic non equi join in two data.tables in R without the error:
  <code>argument specifying columns specify non existing column(s): cols[2]='abs(x.val - i.val)'</code></p>
  <p>A min. example to show the error.</p>
  <pre class="lang-r prettyprint-override"><code>library(data.table)
  set.seed(1); dt1 &lt;- data.table(id= sample(letters[1:3],size = 10,replace = T),val = rnorm(10,mean = 5,sd = 2))
  set.seed(2); dt2 &lt;- data.table(id= sample(letters[1:3],size = 10,replace = T),val = rnorm(10,mean = 5,sd = 2))
  dt1[dt2,on = .(id,abs(x.val - i.val) &lt;1),nomatch=0]
  #&gt; Error in colnamesInt(x, names(on), check_dups = FALSE): argument specifying columns specify non existing column(s): cols[2]='abs(x.val - i.val)'
  </code></pre>
  <p><sup>Created on 2022-05-17 by the <a href="https://reprex.tidyverse.org" rel="nofollow noreferrer">reprex package</a> (v2.0.1)</sup></p>
  <p>It must be something fundamental I am missing.</p>
  <p><em>Note: I have deliberately kept column names identical in both data tables to test the x. and i. functionality of data.table.</em></p>