title: Using using variable names in functions when using mutate_at
body: <p>I want to create a function where I can programmatically add variables based on a user provided list of input variables and cutoff values.</p>
  
  <p>Specifically, I want to define a function </p>
  
  <pre><code>myfun &lt;- function(df, varlist, cutofflist)
  
  </code></pre>
  
  <p>returning <code>df</code> with one extra column for each variable in <code>varlist</code> containing the logical of whether each variable is at most the corresponding cutoff value.</p>
  
  <p>For example, supposing we take the iris data frame,</p>
  
  <pre><code>df &lt;- as_tibble(iris)
  # A tibble: 150 x 1
     iris$Sepal.Length $Sepal.Width $Petal.Length $Petal.Width $Species
                 &lt;dbl&gt;        &lt;dbl&gt;         &lt;dbl&gt;        &lt;dbl&gt; &lt;fct&gt;   
   1               5.1          3.5           1.4          0.2 setosa  
   2               4.9          3             1.4          0.2 setosa  
   3               4.7          3.2           1.3          0.2 setosa  
   4               4.6          3.1           1.5          0.2 setosa  
   5               5            3.6           1.4          0.2 setosa  
   6               5.4          3.9           1.7          0.4 setosa  
   7               4.6          3.4           1.4          0.3 setosa  
   8               5            3.4           1.5          0.2 setosa  
   9               4.4          2.9           1.4          0.2 setosa  
  10               4.9          3.1           1.5          0.1 setosa  
  # ... with 140 more rows
  </code></pre>
  
  <p>I would like the call</p>
  
  <pre><code>myfun(df, c("Sepal.Length", "Petal.Length"), list(Sepal.Length = 5, Petal.Length = 1.5))
  </code></pre>
  
  <p>to produce the same result as</p>
  
  <pre><code>df %&gt;%
     mutate(
        Sepal.Length_indicator = (Sepal.Length &lt;= 5),
        Petal.Length_indicator = (Petal.Length &lt;= 1.5)
     )
  </code></pre>
  
  <p>i.e. this:</p>
  
  <pre><code># A tibble: 150 x 7
     Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Length_indicator Petal.Length_indicator
            &lt;dbl&gt;       &lt;dbl&gt;        &lt;dbl&gt;       &lt;dbl&gt; &lt;fct&gt;   &lt;lgl&gt;                  &lt;lgl&gt;                 
   1          5.1         3.5          1.4         0.2 setosa  FALSE                  TRUE                  
   2          4.9         3            1.4         0.2 setosa  TRUE                   TRUE                  
   3          4.7         3.2          1.3         0.2 setosa  TRUE                   TRUE                  
   4          4.6         3.1          1.5         0.2 setosa  TRUE                   TRUE                  
   5          5           3.6          1.4         0.2 setosa  TRUE                   TRUE                  
   6          5.4         3.9          1.7         0.4 setosa  FALSE                  FALSE                 
   7          4.6         3.4          1.4         0.3 setosa  TRUE                   TRUE                  
   8          5           3.4          1.5         0.2 setosa  TRUE                   TRUE                  
   9          4.4         2.9          1.4         0.2 setosa  TRUE                   TRUE                  
  10          4.9         3.1          1.5         0.1 setosa  TRUE                   TRUE                  
  # ... with 140 more rows
  </code></pre>
  
  <p>I am pretty new at using quosures and such with dplyr. What I was trying so far is the following:</p>
  
  <pre><code>myfun &lt;- function(df, varlist, cutofflist){
    df %&gt;%
      mutate_at(.vars = varlist, .funs = list(indicator = function(x) x&lt;= cutofflist[[?]]))
  }
  </code></pre>
  
  <p>but I don't know what should replace the <code>?</code> above. The solution works if the cutoff is the same for all variables, but not if the cutoff depends on the variable.</p>
  
  <p>Thank you in advance for your help.</p>