title: How to import only one function from another package, without loading the entire namespace
body: <p>Suppose I'm developing a package, called <code>foo</code>, which would like to use the <code>description</code> function from the <code>memisc</code> package. I don't want to import the whole <code>memisc</code> namespace because :</p>
  
  <ol>
  <li>It is bad</li>
  <li><code>memisc</code> overrides the base <code>aggregate.formula</code> function, which breaks several things. For example, <code>example(aggregate)</code> would fail miserably.</li>
  </ol>
  
  <p>The package includes the following files :</p>
  
  <p><strong>DESCRIPTION</strong> </p>
  
  <pre><code>Package: foo
  Version: 0.0
  Title: Foo
  Imports:
      memisc
  Collate:
      'foo.R'
  </code></pre>
  
  <p><strong>NAMESPACE</strong></p>
  
  <pre><code>export(bar)
  importFrom(memisc,description)
  </code></pre>
  
  <p><strong>R/foo.R</strong></p>
  
  <pre><code>##' bar function
  ##'
  ##' @param x something
  ##' @return nothing
  ##' @importFrom memisc description
  ##' @export
  
  `bar` &lt;- function(x) {
      description(x)
  }
  </code></pre>
  
  <p>I'd think that using <code>importFrom</code> would not load the entire <code>memisc</code> namespace, but only <code>namespace::description</code>, but this is not the case. Starting with a vanilla R :</p>
  
  <pre><code>R&gt; getS3method("aggregate","formula")
  ## ... function code ...
  ## &lt;environment: namespace:stats&gt;
  R&gt; library(foo)
  R&gt; getS3method("aggregate","formula")
  ## ... function code ...
  ## &lt;environment: namespace:memisc&gt;
  R&gt; example(aggregate)
  ## Fails
  </code></pre>
  
  <p>So, do you know how I can import the <code>description</code> function from <code>memisc</code> without getting <code>aggregate.formula</code> in my environment ?</p>