[R] Help with abs function

Andrés Aragón Martínez armandres at gmail.com
Sun Jun 14 18:15:12 CEST 2015


Hi,

Just do the following:


> tran<-c(7.2)
> tgrid<-c(7.1,7.4,7.3,7.1,7.3)
> tgrid<-tgrid-tran
> tgrid
[1] -0.1  0.2  0.1 -0.1  0.1
> abs(tgrid[tgrid>0.1])
[1] 0.2

Andrés



> El 12/06/2015, a las 11:01, Jeff Newmiller <jdnewmil at dcn.davis.ca.us> escribió:
> 
> FAQ 7.31
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
>                                      Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> --------------------------------------------------------------------------- 
> Sent from my phone. Please excuse my brevity.
> 
> On June 12, 2015 8:39:48 AM PDT, "Nelson, Gary (MISC)" <gary.nelson at state.ma.us> wrote:
>> I have come across some odd behavior (to me) using the abs() function
>> that I wonder if anyone can explain.
>> 
>> Using  R version 3.2.0, I created a vector of absolute values using 
>> the following code:
>> 
>>> tran<-c(7.2)
>>> tgrid<-c(7.1,7.4,7.3,7.1,7.3)
>>> dgrid<-abs(tgrid-tran)
>>> dgrid
>> [1] 0.1 0.2 0.1 0.1 0.1
>> 
>> When I tried to extract just the rows with values>0.1, I get
>> 
>>> dgrid[dgrid>0.1]
>> [1] 0.1 0.2 0.1
>> 
>> There should be only 1 value extracted.
>> 
>> However, if I enter the values by hand
>> 
>>> bgrid<-c(0.1,0.2,0.1,0.1,0.1)
>>> bgrid
>> [1] 0.1 0.2 0.1 0.1 0.1
>>> bgrid[bgrid>0.1]
>> [1] 0.2
>> 
>> The result is correct.  So why is this happening?
>> 
>> I did explore a little bit and found
>> 
>>> as.character(dgrid)
>> [1] "0.100000000000001"  "0.2"
>> [3] "0.0999999999999996" "0.100000000000001"
>> [5] "0.0999999999999996"
>> 
>> which shows the absolute values of the negative differences  are
>> slightly greater than the difference of 0.1
>> 
>> Is this normal behavior for the abs() function?
>> 
>> Thanks,
>> 
>> Gary Nelson
>> 
>> 	[[alternative HTML version deleted]]
>> 
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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