Request: make `var` a generic
Hi Kenny, yes, there's only so much you can do with S3 methods penetrating other packages' code; I?aki discusses this in the blog about the r-quantities project found at: https://www.r-spatial.org/r/2018/08/31/quantities-final.html#fitting-linear-models-with-quantities I'm not sure whether making "var" a generic would not shift the problem to the next function not being generic, you could experiment with that.
On 1/20/19 6:39 PM, Kenny Bell wrote:
Hi all,
I am running into problems using `summary.lm` as calling `var` on a `units`
object does not retain the `units` attribute.
The units package addresses this issue for `mean` by implementing
`mean.units`:
units:::mean.units
function (x, ...)
{
.as.units(NextMethod(), units(x))
}
This is, however, not possible for `var` (as it's not a generic), which
breaks `summary.lm`:
```
library(units)
#> udunits system database from C:/R/Library/3.5/units/share/udunits
iris$Sepal.Length <- set_units(iris$Sepal.Length, "cm")
summary(lm(Sepal.Length ~ Sepal.Width,
data = iris))
#> Error in Ops.units(mean(f)^2, var(f)): both operands of the expression
should be "units" objects
```
Created on 2019-01-21 by the [reprex package](https://reprex.tidyverse.org)
(v0.2.1.9000)
Apologies if `stats` package emails shouldn't go here.
Cheers,
Kenny
[[alternative HTML version deleted]]
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Edzer Pebesma Institute for Geoinformatics Heisenbergstrasse 2, 48151 Muenster, Germany Phone: +49 251 8333081