>From [EMAIL PROTECTED] Mon Jun 23 14:36:45 2003
Received: from postal.pdf.com (pdf193.pdf.com [209.128.81.193])
        by uhddx01.dt.uh.edu (8.9.2/8.9.2) with ESMTP id OAA09671
        for <[EMAIL PROTECTED]>; Mon, 23 Jun 2003 14:36:44 -0500 (CDT)
Received: from postage.pdf.com (postage.pdf.com [10.10.8.7])
        by postal.pdf.com (Switch-3.0.4/Switch-3.0.0) with ESMTP id h5NJYisf002096;
        Mon, 23 Jun 2003 12:34:44 -0700 (PDT)
Received: from malt.PDF.COM (malt.pdf.com [10.10.8.80])
        by postage.pdf.com (Switch-3.1.0/Switch-3.1.0) with ESMTP id h5NJZw4U022559;
        Mon, 23 Jun 2003 12:35:58 -0700 (PDT)
Received: from pdf.com (sjc-10-10-11-97.pdf.com [10.10.11.97])
        by malt.PDF.COM (8.9.3/8.9.3) with ESMTP id MAA24847;
        Mon, 23 Jun 2003 12:36:05 -0700 (PDT)
Message-ID: <[EMAIL PROTECTED]>
Date: Mon, 23 Jun 2003 12:36:05 -0700
From: Spencer Graves <[EMAIL PROTECTED]>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.2) Gecko/20030208 
Netscape/7.02
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Ravi Varadhan <[EMAIL PROTECTED]>
CC: Erin Hodgess <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
Subject: Re: [R] Summary for mode of a data set
References: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Status: R

          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 <[EMAIL PROTECTED]>
> 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: [EMAIL PROTECTED]
>>>
>>>______________________________________________
>>>[EMAIL PROTECTED] mailing list
>>>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>>
>>______________________________________________
>>[EMAIL PROTECTED] mailing list
>>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>>
> 
>

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to