ヘッダーをスキップ
Oracle® R Enterpriseユーザーズ・ガイド
リリース1.4.1
E57720-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 Oracle R Enterpriseの概要

この章ではOracle R Enterpriseの概要を説明します。この章の内容は次のとおりです。


関連項目:

『Oracle R Enterpriseインストレーションおよび管理ガイド』

Oracle R Enterpriseについて

Oracle R Enterpriseは、Oracle Database Enterprise EditionのOracle Advanced Analyticsオプションのコンポーネントの1つです。Oracle R Enterpriseは、本番環境への迅速なデプロイが可能な、Rでのエンドツーエンド分析プロセス用の包括的なデータベース集中型の環境です。これは、RパッケージおよびOracle Database機能のセットで、Rユーザーは、SQLを使用せずにデータベース常駐データを操作でき、そのデータベース・サーバーで稼働する1つ以上の埋込みRエンジンでRスクリプトを実行できます。

Oracle R EnterpriseをローカルのRセッションから使用すると、Oracle Databaseインスタンスのデータに簡単にアクセスできます。データベース表のデータを指定するRオブジェクトを作成および使用できます。Oracle R Enterpriseには、R操作をデータベース内で実行するSQLに変換するオーバーロードされた関数があります。データベースはSQLを統合し、SQL文の実行時に、問合せの最適化、パラレル処理およびデータベースのスケーラビリティ機能を使用できます。データベースは結果をRオブジェクトとして返します。

埋込みRの実行は、Oracle R Enterpriseの使用による最も重要な利点のいくつかを提供します。埋込みRの実行を使用すると、RインタフェースまたはSQLインタフェース、あるいは両方を介してデータベース内のRスクリプトを格納および実行できます。Rスクリプトの結果を、構造化データ、Rオブジェクトおよびイメージに対するSQL対応のツールで使用できます。

Oracle R Enterpriseの利点

Oracle R Enterpriseを使用したOracle Databaseインスタンスのデータの準備および分析では、Rユーザーにとって多くの利点があります。Oracle R Enterpriseを使用して、次のことを実行できます。

  • SQLを使用せずにデータベース常駐データを操作。Oracle R Enterpriseには、標準のR構文をSQLに透過的に変換するオーバーロードされたオープン・ソースRのメソッドおよび関数があります。これらのメソッドおよび関数は、Oracle R Enterpriseの透過層を実装するパッケージに含まれています。これらの関数およびメソッドを使用することで、データベースに常駐するデータに対するアクセス、分析および操作を行うRオブジェクトを作成できます。データベースは、SQLを自動的に最適化して問合せの効率を向上できます。

  • データの移動を排除。データベースにデータを保持することによって、デスクトップ・コンピュータへのデータの転送にかかる時間およびデータをローカルに格納する必要性をなくします。また、ローカルに格納したデータの管理(データ・ファイルの適切な場所への配布、本番データベースで行われた変更とのデータの同期などのタスクが含まれます)を必要なくします。

  • データをセキュアに保持。データをデータベースに保持することによって、データ管理用のOracle Databaseのセキュリティ、スケーラビリティ、信頼性およびバックアップの各機能を利用できます。

  • データベースの能力を使用。データベース常駐データを直接操作することによって、データベースのメモリーおよび処理能力を使用でき、クライアントのRセッションのメモリーの制約を回避できます。

  • 最新のデータを使用。データはデータベースでリフレッシュされるため、最新のデータにただちにアクセスできます。

  • データベースでデータを準備。透過層関数を使用して、順序付け、集計、フィルタ処理、記録などの操作を介した予測分析用、およびSQLコードを記述することなく総括的サンプリング手法を使用するための、大規模なデータベース常駐データ・セットを準備します。

  • データベースにRオブジェクトを保存。Rオブジェクトを他の場所から使用可能な永続データベース・オブジェクトとしてOracle Databaseインスタンスに保存できます。RオブジェクトおよびOracle R EnterpriseオブジェクトをOracle Databaseが管理するOracle R Enterpriseのデータストアに格納できます。

  • データベースにモデルを構築。データベースにモデルを構築して、Oracle R Enterpriseのデータストアにそれらを格納および管理できます。CRAN (Comprehensive R Archive Network)からダウンロードしたパッケージ内の関数を使用して、大量のメモリーを必要とし、アンサンブル・モデリングなどの手法を使用するモデルを構築できます。

  • データベースのデータをスコアリング。 スクリプトにRモデルを含めてデータベース常駐データをスコアリングできます。次のようなタスクを実行できます。

    • スコアリングに同じRコードを使用できるため、モデル構築からスコアリングに1つの手順で移動します。一部のスタンドアロン分析サーバーで必要なスコアリング・ロジックの変換は必要ありません。

    • バルク・スコアリングなどのタスクを実行するためにスクリプトが自動的に実行されるようにスケジュールします。

    • トランザクションのコンテキストでデータをスコアリングします。

    • オンラインのwhat-ifスコアリングを実行します。

    • オプションでモデルをSQLに変換しますが、これはOracle Databaseによって自動的に実行されます。その後、生成されたSQLを低遅延スコアリング・タスクにデプロイできます。

  • データベースでRスクリプトを実行。Oracle R Enterpriseの埋込みRの実行機能を使用して、データベースでRスクリプトを作成、格納および実行できます。このスクリプトの実行時に、Oracle Databaseは、データベース・サーバーでパラレルに実行可能な1つ以上のRエンジンを開始、制御および管理します。データベース・サーバーでスクリプトを実行することによって、サーバーのスケーラビリティおよびパフォーマンスを活用できます。

    埋込みRの実行機能を使用すると、次のことを実行できます。

    • Rスクリプトを対話式に開発およびテストし、SQLアプリケーションでスクリプトを使用できるようにします。

    • データベース・サーバー上のRスクリプトでCRANおよび他のパッケージを使用します。

    • Rスクリプト全体を本番アプリケーションで操作できるようにし、Rコードの移植を排除することで、Rの結果を既存のアプリケーションに統合するためのコードの作り直しを回避します。

    • Oracle DatabaseをRスクリプトの高パフォーマンス・コンピューティング(HPC)環境としてシームレスに使用することで、データのパラレル化およびリソース管理を提供します。

    • Oracle Databaseの処理リソースおよびメモリー・リソース、およびデータベースと埋込みRの実行のRエンジン間の読取り/書込み操作の高い効率性を使用します。

    • データ・パラレル操作およびタスク・パラレル操作でのデータベースのパラレル処理機能を使用します。

    • パラレル・シミュレーションを実行します。

    • RアプリケーションまたはSQLアプリケーションで使用可能なXMLイメージおよびPNGイメージを生成します。

  • Oracleテクノロジ・スタックと統合。Oracleテクノロジ・スタックのあらゆる側面を利用して、ビジネス・インテリジェンスや科学調査といった、より大規模なフレームワーク内に、独自のデータ分析を統合できます。たとえば、Oracle R Enterpriseの分析結果をOracle Business Intelligence Enterprise Edition (OBIEE)に統合できます。

Oracle R Enterpriseのクラス、関数およびメソッドのオンライン・ヘルプの取得

Oracle R Enterpriseのクライアント・パッケージには、Oracle Databaseのデータとの相互作用に使用するRコンポーネントが含まれています。クライアント・パッケージのリストおよび簡単な説明については、『Oracle R Enterpriseインストレーションおよび管理ガイド』を参照してください。

Oracle R Enterpriseのクラス、関数およびメソッドに関するヘルプを取得するには、helpshowMethodsなどのR関数を使用します。クラスまたは関数の名前にore接頭辞が付いている場合は、help関数にその名前を指定できます。オープン・ソースR関数のオーバーロードされたメソッドに関するヘルプを取得するには、メソッドの名前およびoreクラスの名前を指定します。

例1-1には、Oracle R Enterpriseのクラス、関数およびメソッドに関する情報の取得のためのいくつかの例を示します。例の後にあるリストでは、一部のコードは結果の一部のみを表示するために変更されていて、一部の関数の出力は表示されていません。

例1-1 Oracle R Enterpriseのクラス、関数およびメソッドに関するヘルプの取得

# List the contents of the OREbase package.
ls("package:OREbase")

# Get help for the OREbase package.
help("OREbase")

# Get help for the ore virtual class.
help("ore-class")

# Show the subclasses of the ore virtual class.
showClass("ore")

# Get help on the ore.frame class.
help("ore.frame")

# Get help on the ore.vector class.
help("ore.vector")

# Show the arguments for the aggregate method.
showMethods("aggregate")

# Get help on the aggregate method for an ore.vector object.
help("aggregate,ore.vector-method")

# Show the signatures for the merge method.
showMethods("merge")

# Get help on the merge method for an ore.frame object.
help("merge,ore.frame,ore.frame-method")

showMethods("scale")

# Get help on the scale method for an ore.number object.
help("scale,ore.number-method")

# Get help on the ore.connect function.
help("ore.connect")

例1-1のリスト

R> options(width = 80)
# List the contents of the OREbase package.
R> head(ls("package:OREbase"), 12)
 [1] "%in%"          "Arith"         "Compare"       "I"            
 [5] "Logic"         "Math"          "NCOL"          "NROW"         
 [9] "Summary"       "as.data.frame" "as.env"        "as.factor"
R>
R># Get help for the OREbase package.
R> help("OREbase")      # Output not shown.
R>
R> # Get help for the ore virtual class.
R> help("ore-class")    # Output not shown.
R>
R># Show the subclasses of the ore virtual class.
R> showClass("ore")
Virtual Class "ore" [package "OREbase"]
 
No Slots, prototype of class "ore.vector"
 
Known Subclasses: 
Class "ore.vector", directly
Class "ore.frame", directly
Class "ore.matrix", directly
Class "ore.number", by class "ore.vector", distance 2
Class "ore.character", by class "ore.vector", distance 2
Class "ore.factor", by class "ore.vector", distance 2
Class "ore.date", by class "ore.vector", distance 2
Class "ore.datetime", by class "ore.vector", distance 2
Class "ore.difftime", by class "ore.vector", distance 2
Class "ore.logical", by class "ore.vector", distance 3
Class "ore.integer", by class "ore.vector", distance 3
Class "ore.numeric", by class "ore.vector", distance 3
Class "ore.tblmatrix", by class "ore.matrix", distance 2
Class "ore.vecmatrix", by class "ore.matrix", distance 2
R>
# Get help on the ore.frame class.
R> help("ore.frame")       # Output not shown.

R># Get help on the ore.vector class.
R> help("ore.vector")    # Output not shown.
R>
R># Show the arguments for the aggregate method.
R> showMethods("aggregate")
Function: aggregate (package stats)
x="ANY"
x="ore.vector"

# Get help on the aggregate method for an ore.vector object.
R> help("aggregate,ore.vector-method")      # Output not shown.

# Show the signatures for the merge method.
R> showMethods("merge")
Function: merge (package base)
x="ANY", y="ANY"
x="data.frame", y="ore.frame"
x="ore.frame", y="data.frame"
x="ore.frame", y="ore.frame

# Get help on the merge method for an ore.frame object.
R> help("merge,ore.frame,ore.frame-method")  # Output not shown.

R> showMethods("scale")
Function: scale (package base)
x="ANY"
x="ore.frame"
x="ore.number"
x="ore.tblmatrix"
x="ore.vecmatrix"

# Get help on the scale method for an ore.number object.
R> help("scale,ore.number-method")    # Output not shown.

# Get help on the ore.connect function.
R> help("ore.connect")                # Output not shown.

Rセッションから例1-2に示すようなOREShowDoc関数を呼び出すと、Oracle R EnterpriseのドキュメントをHTML形式またはPDF形式で表示できます。この関数は、このリリースのOracleドキュメント・ライブラリを表示するブラウザを起動します。

例1-2 Oracle R Enterpriseのドキュメントの表示

OREShowDoc()

関連項目:

Oracle R Enterpriseのクライアント・パッケージのインストールの詳細は、『Oracle R Enterpriseインストレーションおよび管理ガイド』を参照してください。

Oracle DatabaseのデータでのRの透過的な使用について

Oracle R Enterpriseには、Oracle Databaseインスタンスのデータを直接操作するために使用できるオーバーロードされたオープン・ソースRメソッドがあります。このメソッドおよび関数は、R関数をSQLに変換する透過層を実装するパッケージに含まれています。

Oracle R Enterpriseの透過層パッケージおよびRをSQLに変換する際の制限について、次の各項で説明します。

透過層について

Oracle R Enterpriseの透過層は、OREbaseOREgraphicsおよびOREstatsのパッケージで実装されます。これらのOracle R Enterpriseパッケージには、オープン・ソースRのbasegraphicsおよびstatsのパッケージに関数のオーバーロードされたメソッドがそれぞれ含まれています。また、Oracle R Enterpriseパッケージには、一部のオープン・ソースR関数のOracle R Enterprise版も含まれています。

これらのパッケージのメソッドおよび関数を使用することで、Oracle Databaseインスタンスのデータを指定するRオブジェクトを作成できます。そのようなオブジェクトを使用するR式を実行すると、メソッドおよび関数はSQL問合せを透過的に生成してデータベースに送信します。その後、データベースはその問合せを実行して、操作の結果をRオブジェクトとして返します。

データベース表またはビューは、data.frameのサブクラスであるore.frameオブジェクトで表されます。その他のOracle R Enterpriseクラスは、ore.vectorvectorなどの対応するRクラスから継承されます。Oracle R Enterpriseは、Oracle Databaseのデータ型をOracle R Enterpriseのクラスに(NUMBERore.integerに)マップします。Oracle R Enterpriseのデータ型およびオブジェクト・マッピングの詳細は、「Rのデータ型およびクラスの透過層サポート」を参照してください。

例1-3に、R関数呼出しのSQLへの変換を示します。これは、オーバーロードされたOracle R Enterpriseのaggregate関数を使用して、例1-3IRIS_TABLEオブジェクトから花弁の長さの平均を取得します。

例1-3 Rでの種ごとの花弁の長さの平均の調査

aggplen = aggregate(IRIS_TABLE$Petal.Length,
                    by = list(species = IRIS_TABLE$Species),
                    FUN = mean)
aggplen

例1-3のリスト

R> aggplen = aggregate(IRIS_TABLE$Petal.Length,
                       by = list(species = IRIS_TABLE$Species),
                       FUN = mean)
R> aggplen
              species     x
setosa         setosa 1.462
versicolor versicolor 4.260
virginica   virginica 5.552

例1-4に、例1-3aggregate関数に相当するSQLを示します。

例1-4 例1-3に相当するSQL

SELECT "Species", AVG("Petal.Length")
FROM IRIS_TABLE
GROUP BY "Species"
ORDER BY "Species";
 
Species     AVG("PETAL.LENGTH") 
----------- ------------------- 
setosa       1.4620000000000002 
versicolor   4.26
virginica    5.552

透過層メソッドおよび関数を使用して、分析用のデータベース常駐データを準備できます。次に、他のOracle R Enterpriseパッケージの関数を使用して、モデルを構築および適合し、それを使用してデータをスコアリングできます。大規模なデータセットでは、Oracle Databaseに埋め込まれたRエンジンを使用してモデリングおよびスコアリングを実行できます。


関連項目:


Rのデータ型およびクラスの透過層サポート

Oracle R Enterpriseの透過層には、Rデータ型をOracle Databaseデータ型にマップするクラスおよびデータ型があります。これらのクラスおよびデータ型について、次の各項で説明します。

Oracle R Enterpriseのデータ型およびクラスについて

Oracle R Enterpriseには、Rデータ型をSQLデータ型にマップするデータ型があります。Rセッションでは、Rオブジェクトからデータベース・オブジェクトを作成するか、データベース・データからRオブジェクトを作成すると、Oracle R EnterpriseはRデータ型をSQLデータ型に変換し、可能な場合はその逆を実行します。データ型マッピングのリストは、表1-1を参照してください。

Oracle R Enterpriseは、Oracle R Enterpriseのクラスのインスタンスであるオブジェクトを作成します。Oracle R Enterpriseは、多くの標準のR関数をオーバーロードし、それらでOracle R Enterpriseのクラスおよびデータ型を使用できるようにします。

R言語の構造および構文は、Oracle Databaseオブジェクトにマップされているオブジェクトでサポートされます。Oracle R EnterpriseでサポートされるR演算子および関数の詳細は、付録Aを参照してください。

表1-1に、R、Oracle R EnterpriseおよびSQLのデータ型のマッピングをリストします。

表1-1 R、Oracle R EnterpriseおよびSQLのデータ型のマッピング

Rデータ型 Oracle R Enterpriseデータ型 SQLデータ型

キャラクタ・モードのvector

ore.character

VARCHAR2

INTERVALYEARTOMONTH

整数モードのvector

ore.integer

NUMBER

論理モードのvector

ore.logical

NUMBERFALSEの場合は0、TRUEの場合は1

数値モードのvector

ore.number

BINARY_DOUBLE

BINARY_FLOAT

FLOAT

NUMBER

Date

ore.date

DATE

POSIXct

POSIXlt

ore.datetime

TIMESTAMP

TIMESTAMPWITHTIMEZONE

TIMESTAMPWITHLOCALTIMEZONE

difftime

ore.difftime

INTERVALDAYTOSECOND


サポート対象外

LONG

LONG RAW

RAW

ユーザー定義のデータ型

参照データ型



注意:

タイプore.datetimeのオブジェクトはタイム・ゾーン設定をサポートしていないため、かわりに、システム・タイム・ゾーンSys.timezoneが使用可能な場合はそれを使用し、Sys.timezoneを使用できない場合はGMTを使用します。

ore.frameクラスについて

ore.frameオブジェクトは、Oracle Databaseインスタンスに対するリレーショナル問合せを表します。これはdata.frameに相当するOracle R Enterpriseのオブジェクトです。通常は、データベース表のプロキシであるore.frameオブジェクトを取得します。次に、ore.frameプロキシ・オブジェクトに新しい列を追加するか、他の変更を行います。そのような変更は、基礎となる表には影響しません。その後でore.frameオブジェクトのソース表からデータをリクエストした場合は、透過層関数が選択リストに追加の列があるSQL問合せを生成しますが、その表は変更されません。

Rでは、data.frameの要素に明示的な順序付けがあります。整数索引付けを使用して要素を指定できます。一方、リレーショナル・データベース表では行の順序が定義されないため、Rデータ構造に直接マップできません。

表に主キー(行内で個別のタプルを形成する1つ以上の列のセット)がある場合は、SELECT文でORDER BY句を使用することで順序付けられた結果を生成できます。ただし、リレーショナル・データの順序付けは負荷が高く、多くの場合、透過層操作では不要です。たとえば、ore.framesummary関数を呼び出す場合、サマリー統計の計算に順序付けは必要ありません。

Oracle R Enterpriseには、ore.frameオブジェクトの順序付けられたものと順序付けられていないものの両方があります。これらのオブジェクトの作成および使用の詳細は、「序付けられたおよび順序付けられていないore.frameオブジェクトの作成」を参照してください。

例1-5では、様々なデータ型を含む列があるdata.frameを作成し、data.frameの構造を表示します。この例では次に、ore.push関数を呼び出して、data.frameのデータのコピーを含むデータベースに一時表を作成します。ore.pushの呼出しでは、その表のプロキシであるore.frameオブジェクトも生成されます。この例では、ore.frameオブジェクトとdata.frameオブジェクトおよびore.frameオブジェクトにある列のクラスを表示します。

例1-5 data.frameおよび対応するore.frameのクラス

df <- data.frame(a="abc",
                 b=1.456,
                 c=TRUE,
                 d=as.integer(1),
                 e=Sys.Date(),
                 f=as.difftime(c("0:3:20", "11:23:15")))
ore.push(df)
class(of)
class(df$a
class(of$a)
class(df$b)
class(of$b)
class(df$c)
class(of$c)
class(df$d)
class(of$d)
class(df$e)
class(of$e)
class(df$f)
class(of$f)

例1-5のリスト

R> df <- data.frame(a="abc",
+                   b=1.456,
+                   c=TRUE,
+                   d=as.integer(1),
+                   e=Sys.Date(),
+                   f=as.difftime(c("0:3:20", "11:23:15")))
R> ore.push(df)
R> class(of)
[1] "ore.frame"
attr(,"package")
[1] "OREbase"
R> class(df$a)
[1] "factor"
R> class(of$a)
[1] "ore.factor"
attr(,"package")
[1] "OREbase"
R> class(df$b)
[1] "numeric"
R> class(of$b)
[1] "ore.numeric"
attr(,"package")
[1] "OREbase"
R> class(df$c)
[1] "logical"
R> class(of$c)
[1] "ore.logical"
attr(,"package")
[1] "OREbase"
R> class(df$d)
[1] "integer"
R> class(of$d)
[1] "ore.integer"
attr(,"package")
[1] "OREbase"
R> class(df$e)
[1] "Date"
R> class(of$e)
[1] "ore.date"
attr(,"package")
[1] "OREbase"
R> class(df$f)
[1] "difftime"
R> class(of$f)
[1] "ore.difftime"
attr(,"package")
[1] "OREbase"

関連項目:

ore.createの詳細は、「データベースに対するデータの移動」を参照してください。

Rのネーミング規則のサポート

Oracle R Enterpriseは、ore.frame列に対して、より制限的なOracle Databaseのネーミング規則ではなくRのネーミング規則を使用します。ore.frameの列には、30バイトより長く、二重引用符を含む、一意でない名前を付けることができます。

RおよびOracle R Enterpriseのクラス・タイプの強制変換について

汎用のas.ore関数は、インメモリーRオブジェクトをoreオブジェクトに強制変換します。より厳密なas.ore.characterなどの関数は、オブジェクトを特定の型に強制変換します。ore.push関数は、Rクラス・タイプをoreクラス・タイプに暗黙的に強制変換し、ore.pull関数は、oreクラス・タイプをRクラス・タイプに強制変換します。これらの関数の詳細は、「データベースに対するデータの移動」を参照してください。

例1-6に、Rオブジェクトのoreオブジェクトへの強制変換を示し、Rのintegerオブジェクトを作成してから汎用メソッドas.oreを使用してore.integerであるoreオブジェクトに強制変換します。この例では、Rオブジェクトを他の様々なoreクラス・タイプに強制変換します。埋込みRの実行関数でのas.factorの使用例は、例6-12「ore.groupApply関数の使用方法」を参照してください。

例1-6 RおよびOracle R Enterpriseのクラス・タイプの強制変換

x <- 1:10
class(x)
X <- as.ore(x)
class(X)
Xn <- as.ore.numeric(x)
class(Xn)
Xc <- as.ore.character(x)
class(Xc)
Xc
Xf <- as.ore.factor(x)
Xf

例1-6のリスト

R> x <- 1:10
R> class(x)
[1] "integer"
R> X <- as.ore(x)
R> class(X)
[1] "ore.integer"
attr(,"package")
[1] "OREbase"
R> Xn <- as.ore.numeric(x)
R> class(Xn)
[1] "ore.numeric"
attr(,"package")
[1] "OREbase"
R> Xc <- as.ore.character(x)
R> class(Xc)
[1] "ore.character"
attr(,"package")
[1] "OREbase"
R> Xc
 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10"
R> Xf <- as.ore.factor(x)
R> Xf
 [1] 1  2  3  4  5  6  7  8  9  10
Levels: 1 10 2 3 4 5 6 7 8 9

Oracle R Enterprise使用時の通常の操作

Oracle R Enterpriseの使用での一般的な操作の進め方を次に示します。

  1. Rセッションで、Oracle Databaseインスタンスのスキーマに接続します。

  2. スキーマをアタッチして、データベース表に対するOracle R Enterpriseのプロキシ・オブジェクトを生成するスキーマ・オブジェクトと同期化します。

  3. 分析用のデータを準備し、探索的データ分析およびデータの視覚化を実行する場合があります。

  4. OREmodelsパッケージまたはOREdmパッケージの関数を使用してモデルを構築します。

  5. ローカルのRセッションで、または埋込みRの実行を使用して、モデルを使用してデータをスコアリングします。

  6. 分析結果をエンド・ユーザーにデプロイします。

図1-1に、これらの手順および手順の一般的な繰返しを示します。

図1-1 一般的なOracle R Enterpriseのワークフロー

図1-1の説明が続きます
「図1-1 一般的なOracle R Enterpriseのワークフロー」の説明

第2章「Oracle R Enterpriseの概要」では、次の操作について説明します。

  • データベースへの接続。

  • データベース表に対するOracle R Enterpriseプロキシ・オブジェクトの作成。

  • ローカルのRセッションのdata.frameからデータベース表(ore.frameプロキシ・オブジェクトと表される)へのデータの移動、およびその逆。

第3章「データベースでのデータの準備および探索」では、分析用のデータの準備およびデータの探索について説明します。データの準備および探索には、次のような操作が含まれる可能性があります。

  • データセットまたは表からのデータの選択。

  • 不要な情報をフィルタ処理することによるデータのクリーニング。

  • データの順序付け。

  • データの中間集計。

  • 時系列分析。

  • データの記録または書式設定。

  • 探索的データ分析。

第4章「Oracle R Enterpriseでのモデルの構築」では、OREmodelsパッケージおよびOREdmパッケージの関数を使用して、Oracle Data Miningモデルを含むモデルの構築について説明します。

第5章「Rモデルでの予測」では、Oracle R Enterpriseモデルでのore.predict関数の使用について説明します。

第6章「Oracle R Enterpriseの埋込みRの実行の使用方法」では、データベース・サーバー上で稼働する1つ以上のRエンジンでRスクリプトを作成および実行する方法と、それらのスクリプトをOracle Database Rスクリプト・リポジトリに保存する方法について説明します。

Oracle R Enterpriseのグローバル・オプション

Oracle R Enterpriseには、様々な関数に適用されるグローバル・オプションがあります。表1-2に、Oracle R Enterpriseのグローバル・オプションおよび説明をリストします。

表1-2 Oracle R Enterpriseのグローバル・オプション

グローバル 説明

ore.envAsEmptyenv

Oracle Databaseへのシリアライズ中にオブジェクト内の参照される環境を空の環境で置き換えるかどうかを指定する論理値。TRUEの場合、オブジェクト内の参照される環境は親が.GlobalEnvである空の環境で置き換えられ、参照される元の環境内のオブジェクトはシリアライズされません。これにより、シリアライズされるオブジェクトのサイズを大幅に削減できる場合があります。FALSEの場合、参照される環境内のすべてのオブジェクトがシリアライズされますが、シリアライズを解除したりメモリーにロードすることもできます。このオプションのデフォルト値はFALSEです。

このグローバル・オプションは次のOracle R Enterprise関数で使用されます。

  • シリアライズされたlistオブジェクトをデータベースに保存するためのore.push

  • オブジェクトをOracle R Enterpriseデータストアに保存するためのore.save

  • ore.doEval、およびlistタイプのパラメータをシリアライズし、埋込みRの実行時にR関数により返されたオブジェクトをシリアライズするためのその他の埋込みR実行関数

ore.na.extract

ore.frameオブジェクトまたはore.vectorオブジェクトの論理サブスクリプト中に使用される論理値。TRUEが指定されると、NA論理サブスクリプトを含む行または要素は、NA値を含む行または要素を生成しますが、これは、Rによるdata.frame値およびvector値の欠損値の論理サブスクリプトの処理方法を模倣します。

FALSEが指定されると、NA論理サブスクリプトはFALSE値として解釈されるため、対応する行または要素が削除されます。デフォルト値はFALSEです。

ore.parallel

埋込みRの実行で使用する優先並列度。次のうちの1つ。

  • 特定の並列度では、2以上の正の整数

  • パラレル化しない場合は、FALSEまたは1

  • data引数のデフォルトのパラレル化の場合はTRUE

  • 操作に対するデータベースのデフォルトはNULL

デフォルト値はNULLです。

ore.sep

ore.frameの複数列の行名間で使用するセパレータを指定する文字列。デフォルト値は|です。

ore.trace

Oracle R Enterpriseの反復関数が反復ごとに出力を印刷するかどうかを指定する論理値。デフォルト値はFALSEです。

ore.warn.order

順序付けが必要な関数で行名がないore.frameまたは要素名がないore.vectorを使用したときにOracle R Enterpriseが警告メッセージを表示するかどうかを指定する論理値。デフォルト値はTRUEです。



関連項目:


Oracle R Enterpriseの例

Oracle R Enterpriseには、Oracle R Enterpriseの関数の使用を示すいくつかのサンプル・スクリプトが含まれています。この項には次のトピックが含まれます:

Oracle R Enterpriseの例のリスト

例1-7に示すとおり、demo関数を使用してOracle R Enterpriseのサンプル・スクリプトのリストを表示できます。

例1-7 Oracle R Enterpriseの例をリストするためのデモの使用方法

demo(package = "ORE")

例1-7のリスト

R> demo(package = "ORE")

Demos in package 'ORE':

aggregate      Aggregation
analysis       Basic analysis & data processing operations
basic          Basic connectivity to database
binning        Binning logic
columnfns      Column functions
cor            Correlation matrix
crosstab       Frequency cross tabulations
datastore      Datastore operations
datetime       Date/Time operations
derived        Handling of derived columns
distributions  Distribution, density, and quantile functions
do_eval        Embedded R processing
esm            Exponential smoothing method
freqanalysis   Frequency cross tabulations
glm            Generalized Linear Models
graphics       Demonstrates visual analysis
group_apply    Embedded R processing by group
hypothesis     Hyphothesis testing functions
matrix         Matrix related operations
nulls          Handling of NULL in SQL vs. NA in R
odm_ai         Oracle Data Mining: attribute importance
odm_ar         Oracle Data Mining: association rules
odm_dt         Oracle Data Mining: decision trees
odm_glm        Oracle Data Mining: generalized linear models
odm_kmeans     Oracle Data Mining: enhanced k-means clustering
odm_nb         Oracle Data Mining: naive Bayes classification
odm_nmf        Oracle Data Mining: non-negative matrix factorization
odm_svm        Oracle Data Mining: support vector machines
push_pull      RDBMS <-> R data transfer
rank           Attributed-based ranking of observations
reg            Ordinary least squares linear regression
row_apply      Embedded R processing by row chunks
sampling       Random row sampling and partitioning of an ore.frame
sql_like       Mapping of R to SQL commands
stepwise       Stepwise OLS linear regression
summary        Summary functionality
table_apply    Embedded R processing of entire table

Oracle R Enterpriseのサンプル・スクリプトの実行

Oracle R Enterpriseのサンプル・スクリプトはdemo関数を使用して実行できます。ほとんどの例では、R Distributionに含まれているdatasetsパッケージにあるirisデータセットを使用します。

サンプル・スクリプトを実行するには、Rを起動し、OREパッケージをlibrary(ORE)を指定してロードし、データベースに接続してから、demo関数を使用します。

例1-8では、basic.Rサンプル・スクリプトを実行します。例の後にあるリストには、スクリプトの出力の最初の数行のみが表示されています。このスクリプトはメモリーないデータベース・オブジェクトであるIRIS_TABLEを作成しますが、これはore.frameオブジェクトです。このスクリプトは次に、irisdata.frameおよびIRIS_TABLEore.frameが同じ構造を持ち、同じデータを含んでいることを示します。

例1-8 basic.Rサンプル・スクリプトの実行

demo("basic", package = "ORE")

例1-8のリスト

R> demo("basic", package = "ORE")

        demo(basic)
        ---- ~~~~~
 
Type  <Return>   to start : 
 
R> #
R> #     O R A C L E  R  E N T E R P R I S E  S A M P L E   L I B R A R Y
R> #
R> #     Name: basic.R
R> #     Description: Demonstrates basic connectivity to database
R> #
R> #
R> #
R> 
R> ## Set page width
R> options(width = 80)
 
R> # Push the built-in iris data frame to the database
R> IRIS_TABLE <- ore.push(iris)
 
R> # Display the class of IRIS_TABLE 
R> class(IRIS_TABLE)
[1] "ore.frame"
attr(,"package")
[1] "OREbase"
 
R> # Basic commands
R> 
R> # Number of rows
R> nrow(iris)
[1] 150
 
R> nrow(IRIS_TABLE)
[1] 150
 
R> # Column names of the data frame
R> names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     
 
R> names(IRIS_TABLE)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     

# The rest of the output is not shown.

関連項目:

Oracle R Enterpriseの基本的な関数の使用については、第2章「Oracle R Enterpriseの概要」を参照してください。