Learn R Programming

ff (version 4.0.4)

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)

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

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.

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

See Also

[.ff, add, readwrite.ff, getset.ff, LimWarn

Examples

Run this code
# NOT RUN {
  x <- ff("a", levels=letters, length=52)
  y <- swap(x, "b", sample(length(x), 26))
  x
  y
  rm(x,y); gc()
# }

Run the code above in your browser using DataLab