FileVector {R.huge} | R Documentation |
Package: R.huge
Class FileVector
Object
~~|
~~+--
AbstractFileArray
~~~~~~~|
~~~~~~~+--
FileVector
Directly known subclasses:
FileByteVector, FileDoubleVector, FileFloatVector, FileIntegerVector, FileShortVector
public static class FileVector
extends AbstractFileArray
FileVector(..., length=NULL, names=NULL)
... |
Arguments passed to AbstractFileArray . |
length |
The number of elements in the vector. |
names |
Optional element names. |
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
.
Methods:
[ | Gets a subset of elements of a file vector. | |
[<- | Assigns values to a subset of elements of a file vector. | |
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, clone, detach, equals, extend, finalize, gc, getEnvironment, getFields, getInstanciationTime, getStaticInstance, hasField, hashCode, ll, load, objectSize, print, save
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).
Henrik Bengtsson (http://www.braju.com/R/)
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); gc();