[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