[R] ifelse problem - bug or operator error

Jennifer Sabatier plessthanpointohfive at gmail.com
Fri Aug 24 23:22:59 CEST 2012


Hi Peter,

I'm really sorry, I thought I was in plain text.  I don't use any
formatting in my emails and in Gmail the HTML looks the same as plain
text.

Anyway, I've attached the data (I didn't think we could do that but I
am frequently wrong).

I say many cases because this is just a subset of >300 observations.

The error seems to happen without a pattern I can discern.  I am
assuming I am doing something wrong.

Thanks,

Jen


On Fri, Aug 24, 2012 at 5:17 PM, Peter Ehlers <ehlers at ucalgary.ca> wrote:
> On 2012-08-24 13:22, Jennifer Sabatier 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.
>>
>> 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
>>
>> 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.
>
>
> _Many_ instances?? I see only 4 such cases. Still not good, though.
> Here's what you should do:
>
> 1. Don't send html mail.
> 2. use simple variable names (x,y,z would do fine here).
> 3. either provide the data or at least a part of it with dput() or
>    at least provide str(vn).
> 4. when you're trying to decide between operator error and bug, go
>    with the operator error theory. You'll be correct at least 99% of
>    the time.
>
> I ran your command on the above (suitably deciphered) data and had no
> problem getting what I think you expect (i.e. the four suspect cases
> came out just as they should). But what my mailer provides as your
> data may not be what you really have.
>
> Oh, and get a bandage for that head bruise.
>
> Peter Ehlers
>
>>
>> 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?
>>
>> 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