[R] I can't get seq to behave how I think it should

Ben Tupper btupper @end|ng |rom b|ge|ow@org
Thu Jan 17 14:43:21 CET 2019


Hi,

This looks like a floating point reality bump - see 

https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f <https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f>

You can use other methods to finding your row - I would opt for findInterval()

> lut = seq(1.4, 2.1, by=0.001)
> findInterval(1.8, lut)
[1] 401

findInterval() uses a rapid search to find the index in the look up table (lut) that is just less than  or equal to the search value (in your example 1.8).

Cheers,
Ben

> On Jan 17, 2019, at 8:33 AM, POLWART, Calum (COUNTY DURHAM AND DARLINGTON NHS FOUNDATION TRUST) via R-help <r-help using r-project.org> wrote:
> 
> I am using seq with the expression seq(1.4, 2.1, by=0.001) to create a sequence of references from 1.4 to 2.1 in 0.001 increments.  They appear to be created correctly.  They have a related pair of data which for the purposes of this we will call val.  I'm interested in the content on the row with seq = 1.8. But I can't seem to get it returned.  I can get other values but not 1.8!  yet looking at row 401 there is nothing to indicate an issue
> 
>> a = 1.4
>> b = 2.1
>> seq = seq(a, b, by=0.001)
>> val = ceiling(seq * 50)
>> s=data.frame(seq, val)
>> s$val[seq==1.799]
> [1] 90
>> s$val[s$seq==1.8]
> numeric(0)
>> s$val[seq==1.8]
> numeric(0)
>> s$val[s$seq==1.800]
> numeric(0)
>> s$val[s$seq==1.801]
> [1] 91
>> head(s[s$seq>1.798,])
>      seq val
> 400 1.799  90
> 401 1.800  90
> 402 1.801  91
> 403 1.802  91
> 404 1.803  91
> 405 1.804  91
> 
> 
> Can anyone explain what's going on here and how I would correctly find the content of row 401 by using an expression to equal the seq column?
> 
> 
> 
> 
> 
> ********************************************************************************************************************
> 
> This message may contain confidential information. If ...{{dropped:25}}



More information about the R-help mailing list