On May 26, 2011, at 3:18 PM, Albert-Jan Roskam wrote:

> Hi,
> 
> I want to recode all Inf and NaN values to NA, but I;m surprised to see the 
> result of the following code. Could anybody enlighten me about this? 
> 
>> df <- data.frame(a=c(NA, NaN, Inf, 1:3))
>> df[is.infinite(df) | is.nan(df)] <- NA
>> df
>    a
> 1  NA
> 2 NaN
> 3 Inf
> 4   1
> 5   2
> 6   3
>> 
> 
> 
> Thanks!
> 
> Cheers!!
> Albert-Jan


The canonical way is to use is.na() to assign the NA value based upon a 
condition. See ?is.na for more information.

is.na(df$a) <- !is.finite(df$a)

> df
   a
1 NA
2 NA
3 NA
4  1
5  2
6  3


HTH,

Marc Schwartz

______________________________________________
R-help@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.

Reply via email to