[R] Arguments of a function

Jim Lemon jim at bitwrit.com.au
Sat Jan 9 01:54:10 CET 2010


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



More information about the R-help mailing list