Confusion in 15.3.4
sebffischer opened this issue · 1 comments
sebffischer commented
The section mentions, that the helper to construct a Person
object converts the age to a double so that it also works with integers, however the following is fine for me
setClass("Person",
slots = c(
name = "character",
age = "numeric"
)
)
john = new("Person", name = "John Smith", age = 12L)
Created on 2021-12-13 by the reprex package (v2.0.1)
What exactly is meant here?
sebffischer commented
Ok, admittedly
setClass("Person",
slots = c(
name = "character",
age = "numeric"
)
)
Person <- function(name, age = NA) {
new("Person", name = name, age = age)
}
Person("John Smith")
#> Error in validObject(.Object): invalid class "Person" object: invalid object for slot "age" in class "Person": got class "logical", should be or extend class "numeric"
Created on 2021-12-13 by the reprex package (v2.0.1)
but then it would be clearer if one would just use
Person <- function(name, age = NA_real_) {
new("Person", name = name, age = age)
}
Created on 2021-12-13 by the reprex package (v2.0.1)
otherwise it kind of suggests that intergers are not numeric