[R] seeking advice about rounding error and %%

Ken vicvoncastle at gmail.com
Sun Aug 14 07:17:11 CEST 2011


How about something like:
If(round(x)!=x){zap} not exactly working code but might help

  Ken 
On Aug 13, 2554 BE, at 3:42 PM, Paul Johnson <pauljohn32 at gmail.com> wrote:

> A client came into our consulting center with some data that had been
> damaged by somebody who opened it in MS Excel.  The columns were
> supposed to be integer valued, 0 through 5, but some of the values
> were mysteriously damaged. There were scores like 1.18329322 and such
> in there.  Until he tracks down the original data and finds out what
> went wrong, he wants to take all fractional valued scores and convert
> to NA.
> 
> As a quick hack, I suggest an approach using %%
> 
>> x <- c(1,2,3,1.1,2.12131, 2.001)
>> x %% 1
> [1] 0.00000 0.00000 0.00000 0.10000 0.12131 0.00100
>> which(x %% 1 > 0)
> [1] 4 5 6
>> xbad <- which(x %% 1 > 0)
>> x[xbad] <- NA
>> x
> [1]  1  2  3 NA NA NA
> 
> I worry about whether x %% 1 may ever return a non zero result for an
> integer because of rounding error.
> 
> Is there a recommended approach?
> 
> What about zapsmall on the left, but what on the right of >?
> 
> which( zapsmall(x %% 1) >  0 )
> 
> 
> Thanks in advance
> 
> -- 
> Paul E. Johnson
> Professor, Political Science
> 1541 Lilac Lane, Room 504
> University of Kansas
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list