I would expect that several math operations should always return values
with a class of numeric. If the input is defined with multiple classes,
however, the class attribute is preserved. I would think this may have
some unintended side-effects. Here's an example:
> sessionInfo()$R.version$version.string
[1] "R version 3.4.0 (2017-04-21)"
> x <- seq.int(5)
> class(x)
[1] "integer"
> class(log(x))
[1] "numeric"
> class(x) <- c("integer", "foo")
> log(x)
[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379
attr(,"class")
[1] "integer" "foo"
> x + 0.5
[1] 1.5 2.5 3.5 4.5 5.5
attr(,"class")
[1] "integer" "foo"
I do see the note in ?Arithmetic that states "All attributes (including
class) are preserved if there is no coercion". Is this correct, or
should the returned value have an updated class of c("numeric", "foo")?
Should foo have its own methods to coerce the output to numeric?
Thanks,
Cole
______________________________________________
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 http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.