FileVector: Class representing a persistent vector stored on file

FileVectorR Documentation

Class representing a persistent vector stored on file

Description

Package: R.huge
Class FileVector

Object
~~|
~~+--AbstractFileArray
~~~~~~~|
~~~~~~~+--FileVector

Directly known subclasses:
FileByteVector, FileDoubleVector, FileFloatVector, FileIntegerVector, FileShortVector

public static class FileVector
extends AbstractFileArray

Usage

FileVector(..., length=NULL, names=NULL)

Arguments

...

Arguments passed to AbstractFileArray.

length

The number of elements in the vector.

names

Optional element names.

Details

The purpose of this class is to be able to work with large vectors in R without being limited by the amount of memory available. Data is kept on the file system and elements are read and written whenever queried.

For more details, AbstractFileArray.

Fields and Methods

Methods:

[ -
[<- -
names Gets the element names of a file vector.

Methods inherited from AbstractFileArray:
as.character, as.vector, clone, close, delete, dim, dimnames, finalize, flush, getBasename, getBytesPerCell, getCloneNumber, getComments, getDataOffset, getDimensionOrder, getExtension, getFileSize, getName, getPath, getPathname, getSizeOfComments, getSizeOfData, getStorageMode, isOpen, length, open, readAllValues, readContiguousValues, readHeader, readValues, setComments, writeAllValues, writeEmptyData, writeHeader, writeHeaderComments, writeValues

Methods inherited from Object:
$, $<-, [[, [[<-, as.character, attach, attachLocally, clearCache, clearLookupCache, clone, detach, equals, extend, finalize, getEnvironment, getFieldModifier, getFieldModifiers, getFields, getInstantiationTime, getStaticInstance, hasField, hashCode, ll, load, names, objectSize, print, save

Supported data types

The following subclasses implement support for various data types:

  • FileByteVector (1 byte per element),

  • FileShortVector (2 bytes per element),

  • FileIntegerVector (4 bytes per element),

  • FileFloatVector (4 bytes per element), and

  • FileDoubleVector (8 bytes per element).

Author(s)

Henrik Bengtsson

Examples

library("R.utils")
verbose <- Arguments$getVerbose(TRUE)

pathname <- "example.Rvector"
if (isFile(pathname)) {
  file.remove(pathname)
  if (isFile(pathname)) {
    stop("File not deleted: ", pathname)
  }
}

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Create a new file vector
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
verbose && enter(verbose, "Creating new vector")
# The length of the vector
length <- 1e6
X <- FileDoubleVector(pathname, length=length)
verbose && exit(verbose)
print(X)

verbose && enter(verbose, "Filling it with data")
idxs <- c(1:4,7:10)
x <- 1:length(idxs)
writeValues(X, indices=idxs, values=x)
verbose && exit(verbose)

verbose && enter(verbose, "Getting data again")
y <- readValues(X, indices=idxs)
verbose && exit(verbose)
stopifnot(all.equal(x,y))

verbose && enter(verbose, "Getting and setting data using [i,j]")
print(X[1:20])
i <- 13:15
X[i] <- 99:98
print(X[1:20])
verbose && exit(verbose)

delete(X)

rm(X)

HenrikBengtsson/R.huge documentation built on Jan. 31, 2024, 8:12 a.m.