Approxfun uses the two-point formula [1] for a line: y = y_1 + (y_2 - y_1) * (x - x_1) / (x_2 - x_1)
so in the first simplified case you get y = 1 + (1 - 1) * (0 - (-1000)) / (Inf - (-1000)) = 1 + 0 * 1000 / Inf = 1 + 0 / Inf = 1 + 0 = 1 while in the second case you get y = 1 + (1 - 1) * (0 - (-Inf)) / (1000 - (-Inf)) = 1 + 0 * Inf / Inf = 1 + NA / Inf = 1 + NA = NA Zero times infinity is undefined. [1] <https://en.m.wikipedia.org/wiki/Linear_equation> On July 4, 2025 3:50:26 AM PDT, "Timothy Earl (Cefas) via R-help" <r-help@r-project.org> wrote: >Hi, > >I'm seeing an asymmetry in how approxfun treats -Inf and Inf, which I don't >understand from reading the help file. > >e.g. a simple step function >tmp <- approxfun(x=c(-Inf, -0.2, 0.2, Inf), y=c(-1, -1, 1, 1)) >tmp(c(-1, 0, 1)) ># [1] NaN 0 1 >I expected: # [1] -1 0 1 > >Clearly I can work round this by using type=2, and not specifying the end >points (or by replacing -Inf by a large negative number), but I was wondering >what I was missing about the different behaviour between positive and negative >infinity. > >To simplify further: >approxfun(x=c(-1000, Inf), y=c(1, 1))(0) ># [1] 1 > >approxfun(x=c(-Inf, 1000), y=c(1, 1))(0) ># [1] NaN > >Sessioninfo: >R version 4.3.0 (2023-04-21 ucrt) -- "Already Tomorrow" >Copyright (C) 2023 The R Foundation for Statistical Computing >Platform: x86_64-w64-mingw32/x64 (64-bit) > >Thanks, > >Tim >________________________________ > This email and any attachments are intended for the named recipient only. Its > unauthorised use, distribution, disclosure, storage or copying is not > permitted. If you have received it in error, please destroy all copies and > notify the sender. In messages of a non-business nature, the views and > opinions expressed are the author's own and do not necessarily reflect those > of Cefas. Communications on Cefas’ computer systems may be monitored and/or > recorded to secure the effective operation of the system and for other lawful > purposes. All messages sent and received by the Centre for Environment, > Fisheries and Aquaculture Science may be monitored in line with relevant UK > legislation . > <https://www.gov.uk/government/organisations/centre-for-environment-fisheries-and-aquaculture-science/about/personal-information-charter> >______________________________________________ >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 https://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. -- Sent from my phone. Please excuse my brevity. ______________________________________________ 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 https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.