On 11-05-27 4:27 AM, Albert-Jan Roskam wrote:
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 think that's a good idea. The default methods are documented to work
on atomic vectors; dataframes are not atomic vectors, so it would be
reasonable to generate an error. (See ?is.atomic for a definition of
atomic vectors.)
I'll see if this causes a lot of trouble...
Duncan Murdoch
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.
______________________________________________
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.