Description Usage Arguments Details Value Examples
View source: R/altWrapper-main.R
Define altWrapper methods which are wrappers of ALTREP APIs.
1 2 3 | setAltMethod(className, inspect, getLength, getDataptr, getDataptrOrNull,
getElement, getSubset, getRegion, duplicate, coerce, serialize,
unserialize, isSorted, noNA, sum, min, max)
|
className |
Character, the name of the class |
inspect |
Function, see detail |
getLength |
Function, see detail |
getDataptr |
Function, see detail |
getDataptrOrNull |
Function, see detail |
getElement |
Function, see detail |
getSubset |
Function, see detail |
getRegion |
Function, see detail |
duplicate |
Function, see detail |
coerce |
Function, see detail |
serialize |
Function, see detail |
unserialize |
Function, see detail |
isSorted |
Function, see detail |
noNA |
Function, see detail |
sum |
Function, see detail |
min |
Function, see detail |
max |
Function, see detail |
This function defines the behavior of an altWrapper class. The altWrapper methods are fundamentally wrappers of ALTREP APIs. Any call to the ALTREP APIs will be converted to a call of the corresponding altWrapper methods.
Belows are the definitions of the altWrapper methods.
x
is the data of the altWrapper object.
Function | Arguments | Return value |
inspect | x | A logical value |
getLength | x | An integer/numeric value |
getDataptr | x , writeable | Vector/External pointer |
getDataptrOrNull | x | Vector/External pointer/NULL |
getElement | x , i | An entry of the ALTREP vector |
getSubset | x , i | A subset of the ALTREP vector |
getRegion | x , start , length , output | Length of the true reads |
duplicate | x , deep | The duplicated object |
coerce | x , type | The coerced object |
serialize | x | Any R object |
unserialize | R_class , state | Any R object |
isSorted | x | An integer value |
noNA | x | An integer value |
sum | x , na.rm | An integer/numeric value |
min | x , na.rm | An integer/numeric value |
max | x , na.rm | An integer/numeric value |
inspect
function determines the output of a .Internal(inspect(...))
call.
Return value = FALSE
means using the default method to inspect the object.
getLength
function returns the length of the ALTREP object
getDataptr
function returns the data pointer of the ALTREP object.
The argument writeable
means whether R will write data to the pointer.
Unlike getDataptrOrNull
function. This function must return a pointer.
It is suggested to throw an error if the ALTREP object does not have a
data pointer. Please note that before R 3.7, getDataptr
is the only way
to print out an ALTREP object without using S3
or S4
method dispatching
when the data pointer of the object is not available.
getDataptrOrNull
function is similar to getDataptr
function, but it can
return NULL
if the data pointer is not available.
getElement
function returns the value of the ALTREP vector at a given position.
The argument i
is a 1-based index of the vector.
getSubset
function returns a subset of the ALTREP vector.
The argument i
is a 1-based subset.
getRegion
function reads a continuous region of the ALTREP vector.
The argument start
is the 1-based starting position of the reads.
length
determines the length of the reads.
Unlike most R functions, the result of the reads should be returned via
the argument output
instead of using return
function. Users must use
[<-
operator to change the value of the output
argument. The return value
of getRegion
function is the true number of reads in the output
argument.
In most case the return value is the same as length
, it will be different only when
start + length - 1
exceeds the length of the ALTREP vector.
duplicate
function duplicates the ALTREP vector. The argument deep
determines
whether it is a deep copy or not. A default duplicate method will be used if the
return value is NULL.
coerce
function coerces the ALTREP vector to the other data type. The
integer argument type
is the index of the target type. Please refer to
SEXPTYPEs
to see the meaning of the index.
serialize
function serialize the ALTREP object. The return value is called state
and will be used in unserialize
function.
unserialize
function unserialize the ALTREP object. The argument state
is
the return value of serialize
function. The argument R_class
is for compatibility
only.
isSorted
whether the ALTREP vector is sorted in the ascending or descending order.
The vector status can be unknown sortness, known unsorted, ascending, descending,
ascending with NA first, descending with NA first. You can find the corresponding
return values by accessing the list variable altrepSortStatus
.
noNA
check whether the ALTREP vector contains any NA value.
The return value must be an element of the list altrepNAStatus
.
sum
, min
and max
have the same meaning as R's corresponding functions. These
functions are only available for integer
and double
ALTREP class type.
No return value
1 2 3 4 5 6 7 8 9 10 11 12 13 | ## Define the ALTREP functions
length_func <- function(x) length(x)
get_ptr_func <- function(x,writeable) x
## Define the altWrapper class and its functions
setAltClass(className = "example", classType = "integer")
setAltMethod(className = "example", getLength = length_func)
setAltMethod(className = "example", getDataptr = get_ptr_func)
## Create an altWrapper object by providing the class name and data.
A <- newAltrep(className = "example", x = 1L:10L)
A
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.