[R] function to set log(0)=0 not working on tables or vectors
    Peter Ehlers 
    ehlers at ucalgary.ca
       
    Mon Jan 18 03:18:41 CET 2010
    
    
  
Are you telling us the whole story? Or did you also
get a warning message which should have twigged the
answer for you?
Try ifelse() instead of if().
  -Peter Ehlers
maiya wrote:
> There must be a very basic thing I am not getting...
> 
> I'm working with some entropy functions and the convention is to use
> log(0)=0.
> 
> So I wrote a function:
> 
> llog<-function(x){
> if (x ==0) 0 else log(x)
> }
> 
> which seems to work fine for individual numbers e.g.
> 
>> llog(0/2)
> [1] 0
> 
> but if I try whole vectors or tables:
> 
> p<-c(4,3,1,0)
> q<-c(2,2,2,2)
> llog(p/q)
> 
> I get this:
> 
> [1]  0.6931472  0.4054651 -0.6931472       -Inf
> 
> 
> What am I missing?
> 
> Thanks!
> 
> Maja
-- 
Peter Ehlers
University of Calgary
403.202.3921
    
    
More information about the R-help
mailing list