Here's the surprising behavior: x <- 1L xx <- as(x, "numeric") class(xx) ## [1] "integer"
It occurs because the call to `as(x, "numeric")` dispatches the coerce S4 method for the signature `c("integer", "numeric")`, whose body is copied in below. function (from, to = "numeric", strict = TRUE) if (strict) { class(from) <- "numeric" from } else from This in turn does nothing, even when strict=TRUE, because that assignment to class "numeric" has no effect: x <- 10L class(x) <- "numeric" class(x) [1] "integer" Is this the desired behavior for `as(x, "numeric")`? ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel