Aha! Thank you very much for that clarification! It would be much more user friendly if R generated a NotImplementedError or something similar. The 'garbage results' are pretty misleading, esp. to a novice.
I wanted to recode every NaN and Inf value of an entire data.frame to NA. The data.frame also includes character variables. So the following might work (?) (Can't test it here) ditch <- function(x) ifelse(is.infinite(x) | is.nan(x), NA, x) df <- apply(df, 2, ditch) ________________________________ From: William Dunlap <wdun...@tibco.com> Cc: R Mailing List <r-help@r-project.org> Sent: Fri, May 27, 2011 12:57:01 AM Subject: RE: [R] NaN, Inf to NA I think the source of the OP's problem is that while things like df>30 and is.na(df) return a logical matrix with the dimensions of the data.frame df, both is.infinite(df) and is.nan(df) return a logical vector as long as the number of columns of df. (`>` and is.na have data.frame methods but is.infinite and is.nan do not: the latter give garbage results for data.frames.) Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org > [mailto:r-help-boun...@r-project.org] On Behalf Of Marc Schwartz > Sent: Thursday, May 26, 2011 2:15 PM > To: Albert-Jan Roskam > Cc: R Mailing List > Subject: Re: [R] NaN, Inf to NA > > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.