title: Non standard evaluation does not work: Error in h(simpleError(msg, call))
body: <p>Here is a working example of what I want to do.</p>
  <pre><code># interactive use
  subset(iris,Species==&quot;setosa&quot;)
  
  # as a function
  fn &lt;- function(level,choice) {
    x &lt;- paste0(level,&quot;==&quot;,&quot;'&quot;,choice,&quot;'&quot;)
    subset(iris,eval(parse(text=x)))
  }
  fn(&quot;Species&quot;,&quot;setosa&quot;)
  </code></pre>
  <p>As seen in the function above, I want to specify &quot;Species&quot; and &quot;setosa&quot; programmatically and combine that to form an expression. And that works.</p>
  <p>But, that doesn't seem to work for another package that I am working with.</p>
  <pre><code>#Biocmanager::install(&quot;phyloseq&quot;)
  library(phyloseq)
  data(GlobalPatterns)
  
  # interactive use, this works
  subset_taxa(GlobalPatterns,Kingdom=='Archaea')
  
  # as a function, this doesn't work
  fn &lt;- function(level,choice) {
    x &lt;- paste0(level,&quot;==&quot;,&quot;'&quot;,choice,&quot;'&quot;)
    subset_taxa(GlobalPatterns,eval(parse(text=x)))
  }
  fn(level=&quot;Kingdom&quot;,choice=&quot;Archaea&quot;)
  
  
  Error in h(simpleError(msg, call)) : 
    error in evaluating the argument 'expr' in selecting a method for function 'eval': object 'x' not found 
  </code></pre>
  <p>Does the function behave differently or am I doing something wrong?</p>
  <p>R 4.0.2<br />
  phyloseq_1.34.0</p>