R Language
Объектно-ориентированное программирование в R
Поиск…
Вступление
На этой странице документации описываются четыре объектные системы в R и их сходства и различия на высоком уровне. Более подробную информацию о каждой отдельной системе можно найти на ее собственной странице темы.
Четыре системы: S3, S4, Reference Classes и S6.
S3
Объектная система S3 - очень простая система OO в R.
Каждый объект имеет класс S3. Он может быть получен (получен?) С class
функции.
> class(3)
[1] "numeric"
Его также можно задать с помощью class
функций:
> bicycle <- 2
> class(bicycle) <- 'vehicle'
> class(bicycle)
[1] "vehicle"
Его также можно установить с помощью функции attr
:
> velocipede <- 2
> attr(velocipede, 'class') <- 'vehicle'
> class(velocipede)
[1] "vehicle"
Объект может иметь много классов:
> class(x = bicycle) <- c('human-powered vehicle', class(x = bicycle))
> class(x = bicycle)
[1] "human-powered vehicle" "vehicle"
При использовании общей функции R использует первый элемент класса с имеющимся общим.
Например:
> summary.vehicle <- function(object, ...) {
+ message('this is a vehicle')
+ }
> summary(object = my_bike)
this is a vehicle
Но если мы теперь определим summary.bicycle
:
> summary.bicycle <- function(object, ...) {
+ message('this is a bicycle')
+ }
> summary(object = my_bike)
this is a bicycle
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow