getset.ff.rdThe three functions get.ff, set.ff and getset.ff provide the simplest interface to access an ff file: getting and setting vector of values identified by positive subscripts
get.ff(x, i)
set.ff(x, i, value, add = FALSE)
getset.ff(x, i, value, add = FALSE)getset.ff combines the effects of get.ff and set.ff in a single operation: it retrieves the old value at position i before changing it.
getset.ff will maintain na.count.
get.ff returns a vector, set.ff returns the 'changed' ff object (like all assignment functions do) and getset.ff returns the value at the subscript positions.
More precisely getset.ff(x, i, value, add=FALSE) returns the old values at the subscript positions i while getset.ff(x, i, value, add=TRUE) returns the incremented values at the subscript positions.
get.ff, set.ff and getset.ff are low level functions that do not support ramclass and ramattribs and thus will not give the expected result with factor and POSIXct
readwrite.ff for low-level access to contiguous chunks and [.ff for high-level access
x <- ff(0, length=12)
get.ff(x, 3L)
#> [1] 0
set.ff(x, 3L, 1)
#> ff (open) double length=12 (12)
#> [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
#> 0 0 1 0 0 0 : 0 0 0 0 0 0
x
#> ff (open) double length=12 (12)
#> [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
#> 0 0 1 0 0 0 : 0 0 0 0 0 0
set.ff(x, 3L, 1, add=TRUE)
#> ff (open) double length=12 (12)
#> [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
#> 0 0 2 0 0 0 : 0 0 0 0 0 0
x
#> ff (open) double length=12 (12)
#> [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
#> 0 0 2 0 0 0 : 0 0 0 0 0 0
getset.ff(x, 3L, 1, add=TRUE)
#> [1] 3
getset.ff(x, 3L, 1)
#> [1] 3
x
#> ff (open) double length=12 (12)
#> [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
#> 0 0 1 0 0 0 : 0 0 0 0 0 0
rm(x); gc()
#> used (Mb) gc trigger (Mb) max used (Mb)
#> Ncells 1160040 62.0 1994352 106.6 1994352 106.6
#> Vcells 2161041 16.5 8790397 67.1 8790397 67.1