From |kry|ov @end|ng |rom d|@root@org  Wed Jan  8 17:20:11 2025
From: |kry|ov @end|ng |rom d|@root@org (Ivan Krylov)
Date: Wed, 8 Jan 2025 19:20:11 +0300
Subject: [Rd] binomial()$linkinv no longer accepts integer values
In-Reply-To: <7dfe81b2-c7ec-49fe-8955-9c41a5771d24@gmail.com>
References: <7dfe81b2-c7ec-49fe-8955-9c41a5771d24@gmail.com>
Message-ID: <20250108192011.01b9155b@Tarkus>

On Wed, 8 Jan 2025 10:57:47 -0500
Ben Bolker <bbolker at 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 ...

-- 
Best regards,
Ivan

[1]
https://github.com/lme4/lme4/blob/54c54a320c23b34fea2f7e613928d1ebe7a3fd37/tests/testthat/test-glmFamily.R#L10C5-L10C25



[Rd] binomial()$linkinv no longer accepts integer values
Ivan Krylov