[R] ifelse problem - bug or operator error

R. Michael Weylandt michael.weylandt at gmail.com
Fri Aug 24 22:36:00 CEST 2012


On Fri, Aug 24, 2012 at 3:22 PM, Jennifer Sabatier
<plessthanpointohfive at gmail.com> wrote:
> Hi R-Helpers,
>
> I don't think I need to post a dataset for this question but if I do, I
> can.  Anyway, I am having a lot of trouble with the ifelse command.
>
You probably should have: dput() makes it super easy as well.

> Here is my code:
>
>
> vn$PM.DIST_flag <- ifelse( (vn$PM.EXP > 0.0) & (vn$PM.DIST.TOT != 1.0), 1,
> 0 )
>
>
> And here is my output that doesn't make ANY sense:
>
>   PM.EXP PM.DIST.TOT PM.DIST_flag  0 0 0  0 0 0  0 0 0  177502 1 0  31403 1
> 0  0 0 0  1100549 1 0  38762 1 0  0 0 0  20025 1 0  0 0 0  13742 1 0  0 0 0
> 83078 1 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0  0 0 0
> 165114 1 0  0 0 0  417313 1 0  3546 1 0  4613 1 0  225460 1 0  6417 1 1  23
> 1 0  3402 1 0  8504 1 1  8552 1 0  9723 1 0  37273 1 1  396 1 0  1478 1 0
> 2074 1 0  12220 1 1  97691 2 1  0 0 0  33993 2 1

Indeed it makes no sense to me either because you sent HTML email
which got mangled by the server.

>
> As you can see, there are many instances where PM.EXP > 0 and PM.DIST.TOT =
> 1 yet PM.DIST_flag = 1 and it should be 0.  It should only flag in cases
> such as the last line of data.
>
> WWHHHYYYYYYYY???? Why why why why why why why? Why?
>
> (Sorry, I've been trying to figure this out for hours and I've devolved to
> mumbling in corners and banging my head against the table)
>
> What in the world am I doing wrong?  Or is ifelse not the right function?

First guess.... standard problems with equality of floating point
numbers. (See R FAQ 7.31 for the details)

You probably want to change

x == 1

to

abs(x - 1) < 1e-05

or something similar.

Cheers,
Michael

>
> Best,
>
> Jen
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.




More information about the R-help mailing list