Рассмотрим следующий код:
> A <- matrix(1:12, ncol=4)
> colnames(A) <- letters[1:4]
> class(A) <- c("foo", "matrix")
, когда A является подмножеством, он теряет метку класса "foo":
> class(A[1:2,])
[1] "matrix"
То же самое происходит с векторами.Тем не менее, этого не происходит с data.frames:
> B <- as.data.frame(A)
class(B) <- c("foo", "data.frame")
> class(B[1:2,])
[1] "foo" "data.frame"
И обычно применение универсальных функций к объектам сохраняет атрибут класса.Не для матричных / числовых / целочисленных объектов.Зачем?И можно ли избежать такого поведения?