Oracle R Enterpriseの埋込みRの実行関数のore.doEval
、ore.tableApply
、ore.groupApply
、ore.rowApply
およびore.indexApply
には、これらの関数の一部またはすべてに共通の引数があります。一部の関数には、その関数に固有の引数もあります。
この項では、引数について次の各項で説明します。
関連項目:
関数シグネチャおよび関数の引数の詳細は、help(ore.doEval)
を呼び出すことで表示されるオンライン・ヘルプを参照してください。
引数の使用例は、「ore.doEval関数の使用方法」および埋込みRの実行関数の使用方法に関するその他のトピックを参照してください。
すべての埋込みRの実行関数には、スクリプトの実行時に適用するための関数が必要です。次の相互に排他的な引数のどちらかを使用して入力関数を指定します。
FUN
FUN.NAME
(およびオプションのFUN.OWNER
)
FUN
引数は、関数オブジェクトを直接指定された関数としてまたはR変数に割り当てられた関数として使用します。RQADMINロールを持つユーザーのみが、埋込みR関数の呼出し時にFUN
引数を使用できます。
FUN.NAME
引数には、Oracle R EnterpriseのRスクリプト・リポジトリに格納されているスクリプトを指定します。格納されたスクリプトには、スクリプトの実行時に適用する関数が含まれます。すべてのOracle R Enterpriseユーザーが、埋込みR関数の呼出し時にFUN.NAME
引数を使用できます。
オプションの引数FUN.OWNER
には、Rスクリプト・リポジトリ内のスクリプトの所有者を指定します。所有者は、スクリプトを作成したユーザーです。この引数は、FUN.NAME
引数とともにのみ使用します。FUN.NAME
が、読取りアクセス権を付与されているプライベート・スクリプトである場合は、FUN.OWNNER
を使用して、プライベート・スクリプトの所有者を指定してください。
RQSYSスキーマは、パブリック・スクリプトおよび事前定義済のOracle R Enterpriseスクリプトの所有者です。事前定義済スクリプトのリストは、help("ore.doEval")
を呼び出し、FUN.NAME
引数の説明を参照してください。FUN.OWNNER
が指定されていないか、NULL
である場合、Oracle R Enterpriseによって、現行のセッションのユーザー、RQSYSの順に所有者が検索されます。スクリプトの所有者が現行のユーザーまたはRQSYSでない場合は、エラーが発生します。
注意:
OREmodels
パッケージのOracle R Enterpriseの高度な分析関数であるore.glm
、ore.lm
、ore.neural
およびore.randomForest
は、埋込みRの実行フレームワークを内部で使用し、埋込みRの実行関数では使用できません。
すべての埋込みRの実行関数は、指定が可能または不可能なオプションの引数を取ります。Oracle R Enterpriseは、ユーザー定義のオプションの引数を入力関数に渡します。モデルなどの複合Rオブジェクトを含む入力関数に、任意の数のオプションの引数を渡すことができます。
ore.
で始まる引数は、特殊な制御引数です。Oracle R Enterpriseはそれらを入力関数に渡しませんが、かわりに、それらを使用して入力関数の実行前または後に発生することを制御します。次の制御引数がサポートされます。
ore.connect
は、埋込みRの実行関数内でOracle R Enterpriseに自動的に接続するかどうかを制御します。これは、クライアント・セッションと同じ資格証明を指定してore.connect
をコールすることと同等です。デフォルト値はFALSE
です。
自動接続を有効にすると、次の機能を実現できます。
埋込みRスクリプトがデータベースに接続されます。
接続は、埋込みR SQL関数を呼び出すセッションと同じ資格証明を持ちます。
このスクリプトは自律型トランザクション内で実行されます。
ROracle問合せは自動接続と連携できます。
Oracle R Enterprise透過層の機能が埋込みスクリプトで使用可能になります。
ore.drop
は入力データを制御します。オプション値がTRUE
の場合、1列のdata.frame
がvector
に変換されます。デフォルト値はTRUE
です。
ore.envAsEmptyenv
は、シリアライズ中にオブジェクト内の参照される環境を空の環境で置き換えるかどうかを制御します。一部のタイプの入力パラメータおよび戻りオブジェクト(list
やformula
など)は、データベースに保存される前にシリアライズされます。制御引数の値がTRUE
の場合、オブジェクト内の参照される環境は親が.GlobalEnv
である空の環境で置き換えられ、参照される元の環境内のオブジェクトはシリアライズされません。これにより、シリアライズされるオブジェクトのサイズを大幅に削減できる場合があります。制御引数の値がFALSE
の場合、参照される環境内のすべてのオブジェクトがシリアライズされますが、後からシリアライズ解除してリカバリすることができます。デフォルト値は、グローバル・オプションore.envAsEmptyenv
によって決定されます。
ore.na.omit
入力データの欠損値の処理を制御します。ore.na.omit = TRUE
を指定した場合、欠損値を含む行またはベクター要素(ore.drop
設定に応じて)が入力データから削除されます。チャンクのすべての行に欠損値がある場合、そのチャンクの入力データは空のdata.frame
またはvector
になります。デフォルト値はFALSE
です。
ore.graphics
は、グラフィカル・ドライバを起動して画像を検索するかどうかを制御します。デフォルト値はTRUE
です。
ore.png.*
には、ore.graphics
がTRUE
の場合に、png
グラフィック・ドライバの追加引数を指定します。これらの引数のネーミング規則では、png
関数の引数にore.png.
接頭辞を追加します。たとえば、ore.png.height
を指定すると、引数height
がpng
関数に渡されます。設定しない場合は、png
関数に標準のデフォルト値が使用されます。
関連項目:
制御引数の詳細は、help(ore.doEval)
を呼び出すことで表示されるオンライン・ヘルプを参照してください。
すべての埋込みRの実行関数に適用されるもう1つの引数にFUN.VALUE
があります。FUN.VALUE
引数がNULL
の場合、ore.doEval
関数およびore.tableApply
関数はore.object
クラス・オブジェクトとしてシリアライズRオブジェクトを返し、ore.groupApply
、ore.indexApply
およびore.rowApply
の各関数はore.list
オブジェクトを返します。ただし、data.frame
またはore.frame
にFUN.VALUE
引数を指定した場合、この関数は、指定したdata.frame
オブジェクトまたはore.frame
オブジェクトの構造を持つore.frame
を返します。
ore.frame
の対応する出力列がCLOBまたはBLOBデータベース・データ型を持つように指定するには、FUN.VALUE
data.frame
の列に属性ora.type
を適用できます。ora.type
の使用例は、例6-11を参照してください。
ore.doEval
関数およびore.indexApply
関数は、データベースから自動的にデータを受け取りません。FUN
引数またはFUN.NAME
引数で指定された関数を単純に実行します。入力関数で必要なすべてのデータは、その関数内で生成されるか、Oracle Database、その他のデータベースまたはフラット・ファイルなどのデータ・ソースから明示的に取得するかのいずれかです。入力関数は、ore.pull
関数またはその他の透過層関数を使用して、ファイルまたは表からデータをロードできます。
ore.tableApply
、ore.groupApply
およびore.rowApply
の各関数には、入力データとしてデータベース表が必要です。この表はore.frame
で表されます。このデータに、X
引数(埋込みRの実行関数の最初の引数)で指定するore.frame
を指定します。埋込みRの実行関数は、ore.frame
オブジェクトを最初の引数としてユーザー定義の入力関数に渡します。
注意:
ユーザー定義のR関数に渡されたore.frame
オブジェクトによって表されるデータは、Oracle Databaseからデータベース・サーバーのRエンジンにコピーされます。Rメモリーの制限が適用されます。データベース・サーバー・マシンに32GBのRAMがあり、データ表が64GBの場合、Oracle R EnterpriseはデータをRエンジンのメモリーにロードできません。
ore.groupApply
、ore.indexApply
およびore.rowApply
の各関数は、parallel
引数を取ります。この引数には、入力関数の埋込みRの実行で使用するための並列度を指定します。「パラレル実行のサポート」を参照してください。