[R] Dividing by 0

Patrick Burns pburns at pburns.seanet.com
Fri Jul 25 21:29:22 CEST 2008

I would think that the result of your rolling
calculation should be NA if there are NAs
or NaNs in the window.  Producing an error
given NAs seems like a broken function to me.

One of the main purposes of NA is so that you
can do operations like what you want to do
and get reasonable answers.

Patrick Burns
patrick at burns-stat.com
+44 (0)20 8525 0696
(home of S Poetry and "A Guide for the Unwilling S User")

nmarti wrote:
> I'm well aware these are not errors, I guess I miss-wrote.
> I understand your concern.  Thanks for passionately looking out for my well
> being, you saved my life.
> My variable has about 10,000 elements and sometime for the first 100 to 500
> elements there is lots of 0's, so I end up with lots of NA/NaN/Inf's. 
> However, when I try to use "Rolling" calculations I recieve error messages
> because the "Rolling" functions reject the NA/NaN/Inf's.  So, I need 0's in
> place of the NA/NaN/Inf's so I can run the "Rolling" calculations.  I can't
> just delete these observations, because it messes up lots of other other
> things within these dataframes.
> I'm well aware these "Rolling" calculations will be wrong in the beginning
> of the dataframe, so I just throw these out.  The rolling window is only
> about 50 odservations, so out of 10,000, I still end up with ample correct
> data and calculations.
> So is this still idiotic?
> Thanks again for your concern.  Now that you understand my situation a
> little better, you might be less distracted today and be able to sleep
> better tonight.
> Rolf Turner-3 wrote:
>> On 25/07/2008, at 5:24 AM, Robert Baer wrote:
>>>> I'm trying to calculate the percent change for a time-series  
>>>> variable.
>>>> Basically the first several observations often look like this,
>>>> x <- c(100, 0, 0, 150, 130, 0, 0, 200, 0)
>>>> and then later in the life of the variable they're are generally  
>>>> no more
>>>> 0's.  So when I try to calculate the percent change from one  
>>>> observation to
>>>> the next, I end up with a lot of NA/Nan/INF, and sometimes 0's  
>>>> which is what
>>>> I want, in the beginning.
>>>> I know I can use x <- na.omit(x), and other forms of this, to get  
>>>> rid of
>>>> some of these errors.  But I would rather use some kind of  
>>>> function that
>>>> would by defult give a 0 while dividing by zero so that I don't  
>>>> lose the
>>>> observation, which is what happens when I use na.omit.
>>> Well, this is not an error but proper behavior in the world of math  
>>> that I know.
>>> However, to get what you want you could try
>>> x=(100-0)/0
>>> if(!is.finite(x))x=0
>>> x
>> The foregoing response exemplifies what I think is the ***RIGHT*** way
>> to answer wrong-headed questions on this list.  ``What you want to do
>> makes no sense, but if you insist on doing it, here's how.''
>> To my mind, wanting the result of division by zero to be zero *in  
>> general*
>> is nothing short of idiotic.  But if someone wants to impose this  
>> convention
>> in his or her own calculations, well that's their ``democratic right''.
>> And Robert Baer clearly and succinctly (and more tactfully than I) makes
>> this clear.
>> A similar style of response would have been appropriate in respect of  
>> the
>> fooferaw that has been going on, on this mailing list on the topic of
>> ``Coefficients of Logistic Regression from bootstrap - how to get  
>> them?''
>> 	cheers,
>> 		Rolf Turner
>> ######################################################################
>> Attention:\ This e-mail message is privileged and confid...{{dropped:9}}
>> ______________________________________________
>> 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