[R] substitute NA values
    Marc Schwartz 
    marc_schwartz at comcast.net
       
    Wed Mar 28 16:36:20 CEST 2007
    
    
  
On Wed, 2007-03-28 at 16:21 +0200, Sergio Della Franca wrote:
> Dearl R-Helpers,
> 
> 
> I have the following data set:
> 
> YEAR   PRODUCTS
> 1990     2478
> 1995     3192
> 2000     NA
> 2005     1594
> 
> 
> I wanto to replace NA values, in the PRODUCTS column, with 0.
> 
> 
> How can i obtain this?
> 
> 
> Thak you in advance.
> 
> 
> Sergio Della Franca
Several ways:
1. Using replace():
  DF$PRODUCTS <- replace(DF$PRODUCTS, is.na(DF$PRODUCTS), 0)
2. Using regular indexing:
 DF$PRODUCTS[is.na(DF$PRODUCTS)] <- 0
See ?replace and ?is.na
That being said, be very cautious about doing this. Most R functions are
designed to handle NA values in very predictable ways, but not so with 0
values.  See ?NA for more information.
For example:
> DF
  YEAR PRODUCTS
1 1990     2478
2 1995     3192
3 2000       NA
4 2005     1594
> mean(DF$PRODUCTS)
[1] NA
> mean(DF$PRODUCTS, na.rm = TRUE)
[1] 2421.333
Now with:
> DF
  YEAR PRODUCTS
1 1990     2478
2 1995     3192
3 2000        0
4 2005     1594
> mean(DF$PRODUCTS)
[1] 1816
HTH,
Marc Schwartz
    
    
More information about the R-help
mailing list