title: knitr gets tricked by data.table `:=` assignment
body: <p>It seems that <code>knitr</code> doesn't understand that <code>DT[, a:=1]</code> should not result in an output of <code>DT</code> to the document.  Is there a way to stop this behaviour?</p>
  
  <h2>Example <code>knitr</code> document:</h2>
  
  <pre><code>Data.Table Markdown
  ========================================================
  Suppose we make a `data.table` in **R Markdown**
  ```{r}
  DT = data.table(a = rnorm(10))
  ```
  Notice that it doesn't display the contents until we do a
  ```{r}
  DT
  ```
  style command.  However, if we want to use `:=` to create another column
  ```{r}
  DT[, c:=5]
  ```
  It would appear that the absence of a equals sign tricks `knitr` into thinking this 
  is to be printed.
  </code></pre>
  
  <h2>Knitr Output:</h2>
  
  <p><img src="https://i.stack.imgur.com/qtiJm.gif" alt="enter image description here"></p>
  
  <p>Is this a <code>knitr</code> bug or a <code>data.table</code> bug?</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>I have only just noticed, that <code>knitr</code> is being weird when it is <code>echo</code>ing the code.  Look at the output above.  In my source code I have <code>DT[, c:=5]</code> but what <code>knitr</code> renders is </p>
  
  <pre><code>DT[, `:=`(c, 5)]
  </code></pre>
  
  <p>Weird...</p>
  
  <p><strong>EDIT 2: Caching</strong></p>
  
  <p>Caching also seems to have a problem with <code>:=</code> but that must be a different cause, so is a separate question here: <a href="https://stackoverflow.com/q/15298359/1900520">why does knitr caching fail for data.table `:=`?</a></p>