[R] Arguments of a function

Jim Lemon
2010-01-09T00:54:10Z

On 01/09/2010 05:15 AM, Lisa wrote:
> Dear all,
>
> I have a question about how to set arguments in my own function. For
> example, I have a function that looks like this:
>
> my.f<- function(a = x1, b = x2)
> {
>     x1 = equation 1
>     x2 = equation 2
>     x3 = equation 3
>     y = a + b
> }
>
> x1, x2, and x3 are temporary variables (intermediate results) calculated
> from other variables within the funciton. I want to use two of these three
> variables to calculate y, and write R script as below:
>
> my.f(a = x1, b = x2)
>
> or
>
> my.f(a = x2, b = x3)
>
> The error information shows that: ?objects 'x1', 'x2', or
'x3' not found?.
>
>
Hi Lisa,
Although you indicated that Henrique's solution worked, it looks to me
as though you are confusing arguments with local variables. As you say,
you are assigning the value of the sum of x1 and x2 to y. Since x1 and
x2 only exist within the function, it would seem that you want:

my.f<-function(...) {
  x1<-(equation 1)
  x2<-(equation 2)
  x3<-(equation 3)
  y<-x1+x2
  return(y)
}

I suspect that you want to pass some values that will be used in the
calculation of x1, x2 and x3 as arguments to the function (a and b?)
thus the ellipsis in the function definition. Maybe what you are looking
for is:

my.f<-function(a,b) {
  x1<-2 * a + 3
  x2<-b / 2
  x3<-(a + b) ^ 2
  y<-x1+x2
  return(y)
}

I hope this guess will be helpful to you.

Jim