I define the following function:
(Please don't wonder about the use of this function, this is just a simplified version of my actual function. And please don't spend your time in finding an alternate way of doing the same as the following does not exactly represent my function. I am only interested in a good explanation)

> f1 = function(x,ties.method="average")rank(x,ties.method)
> f1(c(1,1,2,4), ties.method="min")
[1] 1.5 1.5 3.0 4.0

I don't know why it followed ties.method="average".
Anyways I randomly tried the following:

> f2 = function(x,ties.method="average")rank(x,ties.method=ties.method)
> f2(c(1,1,2,4), ties.method="min")
[1] 1 1 3 4
Now, it follows the ties.method="min"

I don't see any explanation for this, however, I somehow mugged up that if I define it as in "f1", the ties.method in rank function takes its default value which is "average" and if I define as in "f2", it takes the value which is passed in "f2".

But even all my mugging is wasted when I tested the following:

> h = function(x, a=1)x^a
> g1 = function(x, a=1)h(x,a)
> g1(x=5, a=2)
[1] 25

> g2 = function(x, a=1)h(x,a=a)
> g2(x=5, a=2)
[1] 25

Here in both the cases, "h" is taking the value passed through "g1", and "g2".

Any comments/hints can  be helpful.

Regards
Utkarsh

______________________________________________
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