[R] Defining functions - an interesting problem
utkarshsinghal
utkarsh.singhal at global-analytics.com
Wed May 27 16:44:08 CEST 2009
Yeah, seems so obvious now. What a blunder, poor me.
Perfect explanation. Thanks
Thomas Lumley wrote:
> On Wed, 27 May 2009, utkarshsinghal wrote:
>
>> 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".
>
> Look at the arguments to rank()
>> args(rank)
> function (x, na.last = TRUE, ties.method = c("average", "first",
> "random", "max", "min"))
>
> When you do rank(x, ties.method) you are passing "min" as the second
> argument to rank(), which is the na.last argument, not the ties.method
> argument. This didn't give an error message because there weren't any
> NAs in your data.
>
> You want
> f1 = function(x,ties.method="average")rank(x,ties.method=ties.method)
> which gives
>> f1(c(1,1,2,4), ties.method="min")
> [1] 1 1 3 4
>
> -thomas
>
> Thomas Lumley Assoc. Professor, Biostatistics
> tlumley at u.washington.edu University of Washington, Seattle
>
>
More information about the R-help
mailing list