RList
RList[{elems},attributes]
RLinkにおけるR言語リストの内部形式を表す.
詳細とオプション
- 要素 elems は,任意の有効なRLinkオブジェクトの型でよい.
- attributes は,RAttributes["name1":>value1,...]の形式でなければならない.この場合,属性の値は,RLinkで取り扱う任意のR言語オブジェクトでよい.
例題
例 (9)
RVectorの場合と同様,ほとんどの場合,RListを直接使うよりも,リストの短縮形を使った方が便利であることが多い.例えば,整数と実数のペアは簡単に次のように表すことができる:
ToRForm を使ってこのリストの内部形式を見ることができる.この場合はRListを含む:
明示的に頭部RListを使う理由の1つに,RLink が自動的に型を検知したときにはベクトルとされるデータをリストとして取扱いたい場合がある.例えば,次のネストしたリストを考えてみる:
強制的にリストと解釈されるようにするには,代りに以下を使う:
混乱が起るのは,通常の配列を表すリストの場合だけである.不規則なリストは常にR言語リストとして扱われる:
FromRForm関数を使って自分で確かめることができる.ToRFormへの呼出しの後にはFromRFormへの呼出しが続き,入力の短縮形が返されるはずである:
RVectorの場合と同じように,RListのインスタンスを直接Rに送ることができる:
REvaluateを使えばいつでも,Rに送られたものをチェックすることができる:
RVectorの場合と同じように,余分の属性を割り当てた場合は異なる形で処理される.次はその例である:
属性をどこかに保存しなければならないので,R言語オブジェクトをWolfram言語の短縮形(リストだけを含む)で表現することはもはや不可能である.
ここではリストはベクトルとして解釈されることが分かる.以下は,この場合に強制的にリストとして解釈させるための形式である:
これでリストはRベクトルではなく,R言語リストとして解釈されるようになった:
一般に完全な内部形式と一緒に上の短縮形を使う方がはるかに簡単であることが分かる:
これはつまり,Wolfram言語に戻したときにも同じになるということである:
ここでの話には直接関係ないが,R言語においてはリストにインデックスを付ける方法が2つある.配列のインデックス付けと同じシンタックスを使うのが1つの方法である:
これは,与えられた要素を持つR言語リストを提供する.もう一つは,二重の角カッコを持つもので,実際に要素を抽出する:
このことは,Wolfram言語では結果が余分なListにラップされていることにも見られる.これは RLink の内部形式への変換の場合も同じである:
テキスト
Wolfram Research (2012), RList, Wolfram言語関数, https://reference.wolfram.com/language/RLink/ref/RList.html.
CMS
Wolfram Language. 2012. "RList." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/RLink/ref/RList.html.
APA
Wolfram Language. (2012). RList. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/RLink/ref/RList.html