| 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();