[R] Dividing by 0

Rolf Turner r.turner at auckland.ac.nz
Thu Jul 24 22:14:20 CEST 2008


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}}



More information about the R-help mailing list