[R] Rにおけるオブジェクトとは何か?

Rではコンピュータのメモリに直接アクセスすることができない。従って間接的にメモリ上のデータを読み書きする何らかの仕組みが必要となる。この間接的にメモリ上のデータの読み書きを行うためのR言語独自の仕組み(インターフェース)を、Rでは”オブジェクト”と呼んでいる。

Rにおけるオブジェクトは具体的には「特化したデータ構造(specialized data structure)」である。”特化した”という言葉は、意味内容、処理目的によって、Rが複数のオブジェクト型を用意していることを意味する。具体的なオブジェクトの一覧は表1にまとめている。

各オブジェクトの種類を識別するための情報として、Rには型(type)、保管モード(storage mode)、モード(mode)の3種類が用意されている。型が最も物理的な実装に近い情報であり、補完モード、モードになるにつれ次第に論理的・抽象的な情報となる。それぞれtypeof()関数、storage.mode() 関数、mode() 関数で情報を取得することが出来る。

表1. Rで定義されているオブジェクトの一覧

オブジェクト型意味
"NULL"NULL
"symbol"a variable name
"pairlist"a pairlist object (mainly internal)
"closure"a function
"environment"an environment
"promise"an object used to implement lazy evaluation
"language"an R language construct
"special"an internal function that does not evaluate its arguments
"builtin"an internal function that evaluates its arguments
"char"a ‘scalar’ string object (internal only) ***
"logical"a vector containing logical values
"integer"a vector containing integer values
"double"a vector containing real values
"complex"a vector containing complex values
"character"a vector containing character values
"..."the special variable length argument ***
"any"a special type that matches all types: there are no objects of this type
"expression"an expression object
"list"a list
"bytecode"byte code (internal only) ***
"externalptr"an external pointer object
"weakref"a weak reference object
"raw"a vector containing bytes
"S4"an S4 object which is not a simple object

参考

R Language Definition
R Language Definition

コメント