プライマリ・コンテンツに移動
Oracle® R Enterpriseユーザーズ・ガイド
リリース1.5.1
E88296-01
目次へ移動
目次
索引へ移動
索引

前
次

6.2.1 スクリプトを実行する関数の引数

Oracle R Enterpriseの埋込みRの実行関数のore.doEvalore.tableApplyore.groupApplyore.rowApplyおよびore.indexApplyには、これらの関数の一部またはすべてに共通の引数があります。一部の関数には、その関数に固有の引数もあります。

この項では、引数について次の各項で説明します。

関連項目:

  • 関数シグネチャおよび関数の引数の詳細は、help(ore.doEval)を呼び出すことで表示されるオンライン・ヘルプを参照してください。

  • 引数の使用例は、「ore.doEval関数の使用方法」および埋込みRの実行関数の使用方法に関するその他のトピックを参照してください。

6.2.1.1 実行するための入力関数

すべての埋込み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.glmore.lmore.neuralおよびore.randomForestは、埋込みRの実行フレームワークを内部で使用し、埋込みRの実行関数では使用できません。

6.2.1.2 オプションの制御引数

すべての埋込み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.framevectorに変換されます。デフォルト値はTRUEです。

  • ore.envAsEmptyenvは、シリアライズ中にオブジェクト内の参照される環境を空の環境で置き換えるかどうかを制御します。一部のタイプの入力パラメータおよび戻りオブジェクト(listformulaなど)は、データベースに保存される前にシリアライズされます。制御引数の値がTRUEの場合、オブジェクト内の参照される環境は親が.GlobalEnvである空の環境で置き換えられ、参照される元の環境内のオブジェクトはシリアライズされません。これにより、シリアライズされるオブジェクトのサイズを大幅に削減できる場合があります。制御引数の値がFALSEの場合、参照される環境内のすべてのオブジェクトがシリアライズされますが、後からシリアライズ解除してリカバリすることができます。デフォルト値は、グローバル・オプションore.envAsEmptyenvによって決定されます。

  • ore.na.omit入力データの欠損値の処理を制御します。ore.na.omit = TRUEを指定した場合、欠損値を含む行またはベクター要素(ore.drop設定に応じて)が入力データから削除されます。チャンクのすべての行に欠損値がある場合、そのチャンクの入力データは空のdata.frameまたはvectorになります。デフォルト値はFALSEです。

  • ore.graphicsは、グラフィカル・ドライバを起動して画像を検索するかどうかを制御します。デフォルト値はTRUEです。

  • ore.png.*には、ore.graphicsTRUEの場合に、pngグラフィック・ドライバの追加引数を指定します。これらの引数のネーミング規則では、png関数の引数にore.png.接頭辞を追加します。たとえば、ore.png.heightを指定すると、引数heightpng関数に渡されます。設定しない場合は、png関数に標準のデフォルト値が使用されます。

関連項目:

制御引数の詳細は、help(ore.doEval)を呼び出すことで表示されるオンライン・ヘルプを参照してください。

6.2.1.3 戻り値の構造

すべての埋込みRの実行関数に適用されるもう1つの引数にFUN.VALUEがあります。FUN.VALUE引数がNULLの場合、ore.doEval関数およびore.tableApply関数はore.objectクラス・オブジェクトとしてシリアライズRオブジェクトを返し、ore.groupApplyore.indexApplyおよびore.rowApplyの各関数はore.listオブジェクトを返します。ただし、data.frameまたはore.frameFUN.VALUE引数を指定した場合、この関数は、指定したdata.frameオブジェクトまたはore.frameオブジェクトの構造を持つore.frameを返します。

ore.frameの対応する出力列がCLOBまたはBLOBデータベース・データ型を持つように指定するには、FUN.VALUE data.frameの列に属性ora.typeを適用できます。ora.typeの使用例は、例6-11を参照してください。

6.2.1.4 入力データ

ore.doEval関数およびore.indexApply関数は、データベースから自動的にデータを受け取りません。FUN引数またはFUN.NAME引数で指定された関数を単純に実行します。入力関数で必要なすべてのデータは、その関数内で生成されるか、Oracle Database、その他のデータベースまたはフラット・ファイルなどのデータ・ソースから明示的に取得するかのいずれかです。入力関数は、ore.pull関数またはその他の透過層関数を使用して、ファイルまたは表からデータをロードできます。

ore.tableApplyore.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エンジンのメモリーにロードできません。

6.2.1.5 パラレル実行

ore.groupApplyore.indexApplyおよびore.rowApplyの各関数は、parallel引数を取ります。この引数には、入力関数の埋込みRの実行で使用するための並列度を指定します。「パラレル実行のサポート」を参照してください。

6.2.1.6 固有の引数

関数ore.groupApplyore.indexApplyおよびore.rowApplyは、それぞれの関数に固有の引数を取ります。

ore.groupApply関数はINDEX引数を取り、これには、入力データの行が入力関数での処理のためにパーティショニングされる列の名前を指定します。

ore.indexApply関数はtimes引数を取り、これには、入力関数を実行する回数を指定します。

ore.rowApply関数はrows引数を取り、これには、入力関数の各呼出しに渡す行の数を指定します。