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
コメント