[R] Evaluating a function with another function
Guenther, Cameron
Cameron.Guenther at MyFWC.com
Thu Apr 6 22:53:51 CEST 2006
Hello all,
I hope someone can help me with this.
I have function that calculates two values based on input data. A
simple example follows:
test<-function(x,s,rangit=seq(0,10,1))
{
rangit<-rangit
y<-vector()
p<-vector()
for(i in 0:length(rangit)){
y[i]<-x+s[1]+rangit[i]
p[i]<-x+s[2]+rangit[i]
}
return(data.frame(rangit,y,p))
}
And returns the following:
rangit y p
1 0 2 3
2 1 3 4
3 2 4 5
4 3 5 6
5 4 6 7
6 5 7 8
7 6 8 9
8 7 9 10
9 8 10 11
10 9 11 12
11 10 12 13
Which is what I want. The part I am having trouble with is that I want
to write another function that will evaluate the previous function at
multiple levels of x, where the levels of x may not always be the same
length
I have tried several options but so far have not been able to figure it
out.
I tried:
testexp<-function(x,s,rangit){
out<-data.frame()
for (j in 1:length(x)){
out[j]<-test(x[j],s)
}
return(out)
}
Q2<-testexp(x=c(1:4),s=c(1,2))
But that returns a warning with no values. I have also tried various
other methods with no success.
Basically what I want the output to look like is
Out[1] Out[2] Out[3] Out[4]
Rangit y p rangit y p rangit y p rangit y p
0 2 3 0 3 4 0 4 5 0 5 6
1 3 4 1 4 5 1 5 6 1 6 7
2 4 5 2 5 6 2 6 7 2 7 8
3 . . . . . . . . . . .
4 . . . . . . . . . . .
5 . . . . . . . . . . .
6 . . . . . . . . . . .
7 . . . . . . . . . . .
8 . . . . . . . . . . .
9 . . . . . . . . . . .
10 . . . . . . . . . . .
Thanks for any help you can offer.
Cameron Guenther, Ph.D.
Associate Research Scientist
FWC/FWRI, Marine Fisheries Research
100 8th Avenue S.E.
St. Petersburg, FL 33701
(727)896-8626 Ext. 4305
cameron.guenther at myfwc.com
More information about the R-help
mailing list