[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

参考

The R Language Definition
The R Language Definition

コメント