Learn R Programming

ffbase (version 0.13.3)

[.ff: Reading and writing vectors extended to handle logical ff vectors as indexes

Description

Package ff does not allow to extract and set values of ff vectors based on logical ff vectors. For this reason the extractor functions [.ff and [<-.ff defined in package ff are overloaded. If you supply a logical ff vector as an index to another ff vector, the overloaded function will convert it to an integer ff. index before using the [.ff and [<-.ff function from the ff package. This allows to do ff(1:10)[ff(c(FALSE, TRUE, NA, TRUE))] Mark that all other functionality from the extractor functions [.ff and [<-.ff in package ff are retained. This is an extension to handle logical ff vectors as indexes.

Usage

# S3 method for ff
[ (x, i, pack = FALSE)

# S3 method for ff [ (x, i, add = FALSE, pack = FALSE) <- value

Arguments

x

an ff object

i

missing OR a single index expression OR a hi object

pack

FALSE to prevent rle-packing in hybrid index preprocessing, see as.hi

add

TRUE if the values should rather increment than overwrite at the target positions, see readwrite.ff

value

the values to be assigned, possibly recycled

Value

See Extract.ff. Mark that if a logical ff vector is used for i, and if only FALSE or NA values are present, NULL is returned in case of the extractor function [.ff while for the setter function [<-.ff, if the length value is zero, this is not allowed.

See Also

Extract.ff

Examples

Run this code
# NOT RUN {
## extractors
x <- ff(1:10)
y <- ff(11:20)
idx <- ff(c(FALSE, TRUE, NA, TRUE))
x[idx]
idx <- ff(c(FALSE, FALSE, TRUE))
x[idx]
idx <- ff(1:3)
x[idx]

## setters
idx <- ff(c(FALSE, TRUE, NA, TRUE))
x[idx] <- y[idx]
x
idx <- ff(c(FALSE, FALSE, TRUE))
try(x[idx] <- y[idx], silent = T) ## not allowed
x
idx <- ff(1:3)
x[idx] <- y[idx]
x



# }

Run the code above in your browser using DataLab