Thanks guys.

I've used Petr's method and its working for me.

If the data had been from a calculation I'd have rounded it... just didn't 
expect seq to break it!

C

-----Original Message-----
From: PIKAL Petr [mailto:petr.pi...@precheza.cz]
Sent: 17 January 2019 13:53
To: Ben Tupper; POLWART, Calum (COUNTY DURHAM AND DARLINGTON NHS FOUNDATION 
TRUST)
Cc: r-help@r-project.org
Subject: RE: [R] I can't get seq to behave how I think it should

Hi

Or you could use rounding.
which(round(lut, 3)==1.8)
[1] 401

Cheers
Petr

> -----Original Message-----
> From: R-help <r-help-boun...@r-project.org> On Behalf Of Ben Tupper
> Sent: Thursday, January 17, 2019 2:43 PM
> To: POLWART, Calum (COUNTY DURHAM AND DARLINGTON NHS FOUNDATION TRUST)
> <calum.polw...@nhs.net>
> Cc: r-help@r-project.org
> Subject: Re: [R] I can't get seq to behave how I think it should
>
> 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@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}}
>
> ______________________________________________
> R-help@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.
Osobní údaje: Informace o zpracování a ochraně osobních údajů obchodních 
partnerů PRECHEZA a.s. jsou zveřejněny na: 
https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information about 
processing and protection of business partner’s personal data are available on 
website: https://www.precheza.cz/en/personal-data-protection-principles/
Důvěrnost: Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a 
podléhají tomuto právně závaznému prohláąení o vyloučení odpovědnosti: 
https://www.precheza.cz/01-dovetek/ | This email and any documents attached to 
it may be confidential and are subject to the legally binding disclaimer: 
https://www.precheza.cz/en/01-disclaimer/



********************************************************************************************************************

This message may contain confidential information. If you are not the intended 
recipient please inform the
sender that you have received the message in error before deleting it.
Please do not disclose, copy or distribute information in this e-mail or take 
any action in relation to its contents. To do so is strictly prohibited and may 
be unlawful. Thank you for your co-operation.

NHSmail is the secure email and directory service available for all NHS staff 
in England and Scotland. NHSmail is approved for exchanging patient data and 
other sensitive information with NHSmail and other accredited email services.

For more information and to find out how you can switch, 
https://portal.nhs.net/help/joiningnhsmail

______________________________________________
R-help@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.
  • ... POLWART, Calum (COUNTY DURHAM AND DARLINGTON NHS FOUNDATION TRUST) via R-help
    • ... Ben Tupper
      • ... PIKAL Petr
        • ... POLWART, Calum (COUNTY DURHAM AND DARLINGTON NHS FOUNDATION TRUST) via R-help
          • ... PIKAL Petr
            • ... POLWART, Calum (COUNTY DURHAM AND DARLINGTON NHS FOUNDATION TRUST) via R-help
              • ... Jeff Newmiller
              • ... peter dalgaard
                • ... ProfJCNash
        • ... Martin Maechler

Reply via email to