R objects such as vector and data.frame have an implicit ordering of their elements. The data in an Oracle Database table is not necessarily ordered. For some R operations, ordering is useful whereas for other operations it is unnecessary. By ordering an ore.frame, you are able to index the ore.frame object by using either integer or character indexes.
Using an ordered ore.frame object that is a proxy for a SQL query can be time-consuming for a large data set. Therefore, although Oracle R Enterprise attempts to create ordered ore.frame objects by default, it also provides the means of creating an unordered ore.frame object.
When you invoke the ore.sync function to create an Oracle R Enterprise ore.frame object as a proxy for a SQL query, you can use the use.keys argument to specify whether the ore.frame can be ordered or must be unordered.
An ore.frame object can be ordered if one or more of the following conditions are true:
The value of the use.keys argument of the ore.sync function is TRUE and a primary key is defined on the underlying table
The row names of the ore.frame constitute a unique tuple
The ore.frame object is produced by certain functions such as aggregate and cbind
All of the ore.frame objects that are input arguments to relevant Oracle R Enterprise functions are ordered
An ore.frame object is unordered if one or more of the following conditions are true:
The value of the use.keys argument of the ore.sync function is FALSE
No primary key is defined on the underlying table and either the row names of the ore.frame object are not specified or the row names of the ore.frame object are set to NULL
One or more of the ore.frame objects that are input arguments to relevant Oracle R Enterprise functions are unordered
An unordered ore.frame object has null row names. You can determine whether an ore.frame object is ordered by invoking is.null on the row names of the objects, as shown in the last lines of Example 2-13. If the ore.frame object is unordered, is.null returns an error.
See Also: