Hi Everyone,

Thanks so much for all your suggestions!  All of these worked but David's
was best suited for my purposes, considering it was something happens
sporadically.

I don't do expenditure analyses often as I mostly do run of the mill survey
analysis, but this will come in handy for the once or twice a year I do
this.

Jen

On Tue, Jul 31, 2012 at 5:19 PM, David Winsemius <dwinsemius@comcast.net>wrote:

>
> On Jul 31, 2012, at 1:23 PM, Jennifer Sabatier wrote:
>
>  Hi All,
>>
>>
>>
>> I have some data where I am doing fairly simple calculations, nothing more
>> than adding, subtracting, multiplying and dividing.
>>
>>
>>
>> I’m running into a problem when I divide one variable by another and when
>> they’re both 0 I get NaN. I realize that if you divide a non-zero by 0
>> then
>> you get Inf, which is, of course, correct.  But in my case I never get
>> Inf,
>> just NaN because of the structure of my dataset.
>>
>>
>>
>> Here’s a dumb example:
>>
>>
>>
>> var1 <- c(0, 500, 5379, 0, 1500, 1750)
>>
>> var2 <- c(0, 36, 100, 0, 10, 5)
>>
>>
>>
>> var1/var2
>>
>>
> It's possible to define new infix operators (although I have forgotten
> which help page describes this in more detail and I cannot seem to find it
> right now):
>
>  "%/0%" <- function(x,y) { res <- x / y ; res[ is.na(res) ] <- 0;
> return(res) }
>
> # You cannot use %/% because it is already used for integer division. I
> guess you could use "//", but to me that looks too much like "||" which is
> the single-value-OR. You could also use "%div0%".
>
>  var1 %/0% var2
>
> #[1]   0.00000  13.88889  53.79000   0.00000 150.00000 350.00000
>
> If this is a regular need, you can put this in a .profile file or a
> package. See:
>
> ?Startup
>
> --
>
>  I realize the NaNs are logical, but for my purposes this should just be 0
>> because I am calculating expenditures and if you spent no money in one
>> sub-area and none in the whole area then you don't have an expenditure at
>> all, so it should be 0.  And since R doesn't like adding NA's or NaN's to
>> anything, I'd rather just have this be 0 so that my future calculations,
>> such as adding up expenditure, is simple.
>>
>>
>> Is there an easy way to avoid the NaN's, something a non-programmer (ie,
>> the person I am handing this code off to) would understand?
>>
>
>
>
>>
>> Thanks,
>>
>>
>> Jen
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________**________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help>
>> PLEASE do read the posting guide http://www.R-project.org/**
>> posting-guide.html <http://www.R-project.org/posting-guide.html>
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
> David Winsemius, MD
> Alameda, CA, USA
>
>

	[[alternative HTML version deleted]]

