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

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to