vectorやdata.frameなどのRオブジェクトには、その要素の暗黙的な順序付けがあります。Oracle Database表のデータは、必ずしも順序付けられている必要はありません。一部のR操作では順序付けは役立ちますが、他の操作では必要ではありません。ore.frameを順序付けすることで、整数または文字列索引のいずれかを使用してore.frameオブジェクトに索引付けできます。
SQL問合せに対するプロキシである順序付けられたore.frameオブジェクトを使用すると、大規模なデータセットでは時間がかかります。そのため、Oracle R Enterpriseはデフォルトで順序付けられたore.frameオブジェクトの作成を試みますが、順序付けられていないore.frameオブジェクトを作成するための方法も提供されています。
SQL問合せのプロキシとしてOracle R Enterpriseのore.frameオブジェクトを作成するためにore.sync関数を呼び出す場合、use.keys引数を使用してore.frameを順序付けするか、しないようにするかを指定できます。
次の1つ以上の条件を満たす場合、ore.frameオブジェクトは順序付けられます。
ore.sync関数のuse.keys引数の値がTRUEで、基礎となる表で主キーが定義されている
ore.frameの行名が一意のタプルを構成する
ore.frameオブジェクトがaggregateやcbindなどの特定の関数で生成されている
関連するOracle R Enterpriseの関数に対する入力引数であるore.frameオブジェクトのすべてが順序付けられている
次の1つ以上の条件を満たす場合、ore.frameオブジェクトは順序付けられません。
ore.sync関数のuse.keys引数の値がFALSEである
主キーが基礎となる表に定義されておらず、ore.frameオブジェクトの行名が指定されていないか、ore.frameオブジェクトの行名がNULLに設定されている
関連するOracle R Enterpriseの関数に対する入力引数である1つ以上のore.frameオブジェクトが順序付けられていない
順序付けられていないore.frameオブジェクトにはNULLの行名があります。例2-13の最後の行に示すとおり、オブジェクトの行名でis.nullを呼び出すことによってore.frameオブジェクトが順序付けられるかどうかを判断できます。ore.frameオブジェクトが順序付けられていない場合、is.nullはエラーを返します。
関連項目: