title: How to make R stop accepting partial matches for column names?
body: <p>I recently had a difficult time chasing down a bug in my code -- it turned out I was referencing a column that did not exist, but R was not giving me any kind of error or warning about referencing a non-existent column. Instead, because the non-existent column I referenced happened to match the beginning of the name of another column, R was silently substituting that other column.</p>
  
  <p>I find that to be a very undesirable behavior -- what does R call it, and how do I turn it off?</p>
  
  <p>Example:</p>
  
  <pre><code>&gt; a &lt;- as.data.frame(cbind(rep(0,5),rep(2,5),seq(58,62)))
  &gt; colnames(a) &lt;- c('eligible','height','age_of_death')
  &gt; a
    eligible height age_of_death
  1        0      2           58
  2        0      2           59
  3        0      2           60
  4        0      2           61
  5        0      2           62
  &gt; a$he
  [1] 2 2 2 2 2
  &gt; a$eligible[a$age &gt;= 60] &lt;- 1
  &gt; a
    eligible height age_of_death
  1        0      2           58
  2        0      2           59
  3        1      2           60
  4        1      2           61
  5        1      2           62
  </code></pre>
  
  <p>Not sure if all versions of R do this or not, but I'm using 3.6.0.</p>
  
  <p>How do I disable this feature so R will tell me if I reference a non-existent column instead of trying to substitute a similarly-named column for me?</p>