[R-sig-teaching] checking even/odd in R

Albyn Jones jones at reed.edu
Mon Dec 4 03:42:01 CET 2006


One solution for the exact equality problem is to start by rounding or
truncating to an integer, depending of course on what the origin of the 
dataset
was, and the point of the operation.  The sign doesn't matter;

> -3 %% 2
[1] 1


floor(x) rounds down to an integer
ceiling(x) rounds up
round(x) rounds to the nearest integer, rounding to an even integer
         in case of ties

albyn

Quoting John Fox <jfox at mcmaster.ca>:

> Dear Robert and Yeasmin,
>
> You could test that the number mod 2 is 0; e.g.,
>
>> (1:10 %% 2) == 0
> [1] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE
>
> A potential problem is that testing exact equality is risky, so you're
> probably better off checking that abs(x) %% 2 is less than some very small
> number such as sqrt(.Machine$double.eps).
>
> I hope this helps,
> John
>
> --------------------------------
> John Fox
> Department of Sociology
> McMaster University
> Hamilton, Ontario
> Canada L8S 4M4
> 905-525-9140x23604
> http://socserv.mcmaster.ca/jfox
> --------------------------------
>
>> -----Original Message-----
>> From: r-sig-teaching-bounces at r-project.org
>> [mailto:r-sig-teaching-bounces at r-project.org] On Behalf Of
>> Robert W. Hayden
>> Sent: Sunday, December 03, 2006 8:24 PM
>> To: Yeasmin Khandakar
>> Cc: R-sig-teaching
>> Subject: Re: [R-sig-teaching] checking even/odd in R
>>
>>
>> I do not know of anything specific to r but standard
>> programming tricks may do it.  For example, if the number is
>> x, compute y=x/2, let z be y rounded to the nearest whole
>> number, and check if y=z.  If it does, x is even.  There may
>> be rounding issues; I doubt R stores data as integers.  You
>> might have to do this in an environment that sees the numbers
>> as integers -- or text.  AWK comes to mind.
>>
>> You may also want code to check for x values like 23.456.
>>
>> >
>> > Dear all,
>> >
>> > I'm in search for a function which can be used to check whether a
>> > numeriacl value (say, x) is even/odd.
>> > Any help is highly appreciated.
>> >
>> > Thanks
>> > Yeasmin
>> >
>> > --Boundary_(ID_5eoWS9sJoAbqcSKM1OUsmg)
>> > Content-Type: text/plain; charset="us-ascii"
>> > MIME-Version: 1.0
>> > Content-Transfer-Encoding: 7bit
>> > Content-Disposition: inline
>> >
>> > _______________________________________________
>> > R-sig-teaching at r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-sig-teaching
>> >
>> > --Boundary_(ID_5eoWS9sJoAbqcSKM1OUsmg)--
>> >
>> >
>>
>>
>>
>>  _______
>> |   ^  |
>> |     /  		    Robert W. Hayden
>> |    |   		    in the old library
>> |    |   		    212 Main Street
>> |   /    	            P. O. Box 450
>> |  |     		  ^ North Troy, VT 05859
>> L__L			    (802) 988-2587
>>                             http://statland.org/
>> Map of VT                   bob at statland.org
>>
>> Communications sent to Plymouth State will not reach me.
>>
>> _______________________________________________
>> R-sig-teaching at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-teaching
>
> _______________________________________________
> R-sig-teaching at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-teaching
>




More information about the R-sig-teaching mailing list