title: How to pass in the f expression column to a function when extending the dataframe in pydatatable?
body: <p>I'm trying to generate some random data and keep it in a datatable, for this reason I have created a custom function as:</p>
  
  <pre><code>def make_data(nrows):
  
      DT = dt.Frame({'x': 5*np.random.normal(size=nrows)})
  
      DT_EX = DT[:,f[:].extend({'y': 0.01*f['x'] + 0.1*np.random.normal(size=nrows)})]
  
      return DT_EX
  
  </code></pre>
  
  <p>On executing this function it gives back a DT as:</p>
  
  <pre><code>In [3]: make_data(5)                                                                                                                                                                                        
  Out[3]: 
     |         x           y
  -- + ---------  ----------
   0 | -0.486592   0.227217 
   1 | -1.90302   -0.0509506
   2 |  4.69407    0.0758279
   3 | -7.08778   -0.152139 
   4 |  0.917043  -0.204939
  
  </code></pre>
  
  <p>I would like to add on a np.sin function to the y column expression as:</p>
  
  <pre><code>def make_data_version_two(nrows):
  
      DT = dt.Frame({'x': 5*np.random.normal(size=nrows)})
  
      DT_EX = DT[:,f[:].extend({'y': np.sin(f.x) + 0.01*f.x + 0.1*np.random.normal(size=nrows)})]
  
      return DT_EX
  </code></pre>
  
  <p>On executing this function it throws out an error:</p>
  
  <pre><code>AttributeError                            Traceback (most recent call last)
  &lt;ipython-input-5-81a67037f9f1&gt; in &lt;module&gt;
  ----&gt; 1 make_data_version_two(5)
  
  &lt;ipython-input-4-e532306680bb&gt; in make_data_version_two(nrows)
        3     DT = dt.Frame({'x': 5*np.random.normal(size=nrows)})
        4 
  ----&gt; 5     DT_EX = DT[:,f[:].extend({'y': np.sin(f.x) + 0.01*f['x'] + 0.1*np.random.normal(size=nrows)})]
        6 
        7     return DT_EX
  
  AttributeError: 'Expr' object has no attribute 'sin'
  
  </code></pre>
  
  <p>My question is how to pass datatable column to any other functions like np.sin(f.x) or np.round(f.x) etc.</p>
  
  <p>I have tried these variants as well, none of them worked.</p>
  
  <ul>
  <li><p>np.sin(f['x'])</p></li>
  <li><p>np.sin(['x'])</p></li>
  </ul>