swap: Reading and writing in one operation (high-level)
Description
The generic swap combines x[i] and x[i] <- value in a single operation.
Usage
swap(x, value, ...)
# S3 method for ff
swap(x, value, i, add = FALSE, pack = FALSE, ...)
# S3 method for ff_array
swap(x, value, ..., bydim = NULL, drop = getOption("ffdrop"), add = FALSE, pack = FALSE)
# S3 method for default
swap(x, value, ..., add = FALSE)
Value
Values at the target positions.
More precisely swap(x, value, i, add=FALSE) returns the old values at the position i while swap(x, value, i, add=TRUE) returns the incremented values of x.
Arguments
x
a ff or ram object
value
the new values to write, possibly recycled, see [.ff
i
index information, see [.ff
...
missing OR up to length(dim(x)) index expressions OR (ff only) hi objects
drop
logical scalar indicating whether array dimensions shall be dropped
bydim
how to interpret vector to array data, see [.ff
add
TRUE if the values should rather increment than overwrite at the target positions, see readwrite.ff
pack
FALSE to prevent rle-packing in hybrid index preprocessing, see as.hi
Author
Jens Oehlschlägel
Details
y <- swap(x, value, i, add=FALSE, ...)
is a shorter and more efficient version of
y <- x[i, add=FALSE, ...]
x[i, add=FALSE, ...] <- value
and
y <- swap(x, value, i, add=TRUE, ...)
is a shorter and more efficient version of
y <- x[i, add=TRUE, ...]
y <- y + value
x[i, add=FALSE, ...] <- y