R Language
Rにおけるオブジェクト指向プログラミング
サーチ…
前書き
このドキュメントのページでは、Rの4つのオブジェクトシステムとその上位レベルの類似点と相違点について説明します。個々のシステムの詳細については、それぞれのトピックページを参照してください。
4つのシステムは、S3、S4、Reference Classes、およびS6です。
S3
S3オブジェクトシステムは、Rの非常に単純なOOシステムです。
すべてのオブジェクトには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