[Rd] Why does poly work for unordered factors?

Roland Fuß ro|@nd@|u@@ @end|ng |rom thuenen@de
Fri Oct 24 07:40:45 CEST 2025


I think this bug highlights a much more fundamental issue:

Conceptually, as.numeric should throw an error for unordered factors or 
return NaN values or maybe behave like 
as.numeric(as.character(<factor>)). Even a warning would be an 
improvement. I know a change like this is pretty much impossible but the 
examples in help("numeric") already acknowledge how unintuitive current 
behavior is. I suspect almost everbody teaching R to beginners covers 
what as.numeric(<factor>) actually does (cf. The R Inferno, Section 
8.2.1). And that shouldn't be necessary.

Roland

Am 22.10.2025 um 11:11 schrieb Martin Maechler:
>>>>>> Roland Fuß via R-devel
>>>>>>      on Wed, 22 Oct 2025 10:24:07 +0200 writes:
>      > This doesn't seem intended.
>
> You are right.  The code change, reverting to previous behaviour
> notably for "Date",
> was prompted on this R-devel list,
>      https://stat.ethz.ch/pipermail/r-devel/2022-July/081850.html
>
> But that the change allows poly(<factor>, .) to work was overlooked (by
> me and anyone else ..) and is a bug we will change.
>
>      > See:
>
>      > https://stackoverflow.com/questions/79795583/why-does-poly-work-for-unordered-factors-it-previously-did-not-work
>
> As was already raised in the above SO thread,
> what should happen for *ordered* factors is less obvious.
> A warning was proposed, but I thought that this was too harsh;
> hence, we could use message(), or just keep allowing it.
>
> Opinions?
>
> Martin
>
> --
> Martin Maechler
> ETH Zurich  and   R Core team
>
>      > --
>      > Dr. Roland Fuß
>
>      > Thünen-Institut für Agrarklimaschutz/
>      > Thünen Institute of Climate-Smart Agriculture
>
>      > Bundesallee 65
>      > D-38116 Braunschweig, Germany



More information about the R-devel mailing list