On 1/8/25 17:26, Ben Bolker wrote:
Thanks, that makes sense.

  I guess if it never worked for integers (or hasn't worked in a long time, at least) then it doesn't need to be fixed/changed ...

Still you found out that the type check and use of REAL() in the function is in wrong order. Instead of

"REAL() can only be applied to a 'numeric', not a 'integer' "

one should get

"Argument eta must be a nonempty numeric vector"

Fixed in R-devel,

Best,
Tomas



  cheers
   Ben


On 2025-01-08 11:20 a.m., Ivan Krylov wrote:
On Wed, 8 Jan 2025 10:57:47 -0500
Ben Bolker <bbol...@gmail.com> wrote:

I haven't done the archaeology to figure out when this broke/exactly
what change in the R code base broke it: it happened within the last
month or so

binomial() itself exhibits this property even in R-4.2.2 from more than
two years ago:

R -q -s -e 'getRversion(); binomial()$linkinv(1L)'
# [1] ‘4.2.2’
# Error in binomial()$linkinv(1L) :
#   REAL() can only be applied to a 'numeric', not a 'integer'

It's the `etas` [1] that suddenly became integer due to a change in
seq.int():

R -q -s -e 'str(seq.int(-8, 8, by=1))'
# num [1:17] -8 -7 -6 -5 -4 -3 -2 -1 0 1 ...
R-devel -q -s -e 'str(seq.int(-8, 8, by=1))'
# int [1:17] -8 -7 -6 -5 -4 -3 -2 -1 0 1 ...



______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to