[R] Summary for mode of a data set
Spencer Graves
spencer.graves at pdf.com
Mon Jun 23 21:36:05 CEST 2003
You are correct that my function is also wrong.
You need to decide what you want and write a function to do that, if
you don't have it already.
Best Wishes,
Spencer Graves
Ravi Varadhan wrote:
> Dear Spencer:
>
> In the following example, your code doesn't pick up the local mode at 5.
>
>
>>x2 <- c(1,1,2,3,3,3,3,5,5,5)
>>modes(x2)
>
> [1] 1 3
>
> In this example, it gives a mode at 7, which is incorrect.
>
>
>>x2 <- c(1,1,2,3,3,3,3,5,5,5,6,7)
>>modes(x2)
>
> [1] 1 3 7
>
> Ravi.
>
> ----- Original Message -----
> From: Spencer Graves <spencer.graves at pdf.com>
> Date: Monday, June 23, 2003 2:53 pm
> Subject: Re: [R] Summary for mode of a data set
>
>
>>Your "mode1" function will identify multiple modes only if they
>>have the
>>same number of observations. Consider the following:
>>
>>
>>>x2 <- c(2, 1,1, 3,3,3)
>>>mode1(x2)
>>
>>[1] 3
>>
>>Here, "mode1" did not identify the local mode at 1, because it had
>>fewer
>>observations than 3. If you want the modes at both 1 and 3, then
>>consider the following:
>>
>>modes <- function(x){
>> xt <- table(x)
>> nt <- length(xt)
>> sel <- c(xt[-nt]>=xt[-1], T)&c(T, xt[-1]>=xt[-nt])
>> as.numeric(names(xt[sel]))
>>}
>>
>>>modes(x2)
>>
>>[1] 1 3
>>
>>hth. spencer graves
>>
>>Erin Hodgess wrote:
>>
>>>Dear R People:
>>>
>>>thank you for the many helpful sets of code that I received!!!
>>>
>>>I combined several of the concepts for the following function:
>>>
>>>
>>>
>>>>mode1
>>>
>>>
>>>function(x) {
>>>
>>> y <- rle(sort(x))
>>>
>>> z <- y$values[y$lengths==max(y$lengths)]
>>>
>>> return(z)
>>>
>>>}
>>>
>>>
>>>
>>>>xm
>>>
>>>
>>> [1] 22 15 10 30 25 26 2 17 28 2 24 6 26 24 5 22 20 14
>>>
>>>
>>>
>>>>mode1(xm)
>>>
>>>
>>>[1] 2 22 24 26
>>>
>>>
>>>
>>>This will pick up multiple modes.
>>>
>>>Again thanks to all who helped!
>>>
>>>Sincerely,
>>>Erin
>>>mailto: hodgess at uhddx.01.dt.uh.edu
>>>
>>>______________________________________________
>>>R-help at stat.math.ethz.ch mailing list
>>>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>>
>
>
More information about the R-help
mailing list