title: do.call(), multiple parameters
body: <p>I have a function with many arguments:</p>
  
  <p>fun(A,B,C,D,E)</p>
  
  <p>Now I want to assign fixed value <code>a,b,c,d</code> to <code>A,B,C,D</code> and assign E a list of 1 : 7</p>
  
  <p>I want to use <code>do.call()</code> as below, but it doesn't work.</p>
  
  <pre><code>a &lt;- do.call(function(x) fun(A = a, B = b, C = c, D = d, E = x), list(1:7))
  </code></pre>
  
  <p>I turn to lapply, and it works,</p>
  
  <pre><code>a &lt;- lapply(c(1:7), function(x) fun(A = a, B = b, C = c, D = d, E = x))
  </code></pre>
  
  <p>As Joshua Ulrich's answer, when I try</p>
  
  <pre><code>a `&lt;- do.call(fun, list(A = a, B = b, C = c, D = d, E = list(1:7)))`
  </code></pre>
  
  <p>it says </p>
  
  <pre><code>(list) object cannot be coerced to type 'double'
  </code></pre>
  
  <p>So I guess fun needs a double value for E, but do.call() doesn't give the values one by one, but a list.</p>
  
  <p>I don't want to use <code>lapply</code> because it returns a list of list, which, if I want to point at a special list, I have to use [[]], and only single value is allowed in [[]], and I cannot use a vector to point at, e.g. [[a]],with a &lt;- c(1:7).</p>
  
  <p>How to make do.call() work?</p>